Mainly, there is 3 version of openSUSE repository, oss, non oss and Packman. Oss repository contains all of open source application and the non-oss contains free application without providing source code. Open source application such as Thunderbird, Kmail and OpenOffice could be found in the oss repository, while non-oss contains Flash-Player, Acrobat Reader, etc. The last one is Packman, which contains the 3rd party application such as Clamav, multimedia package, application with special purpose (e.g Kchm), etc.
We could build a local copy of openSUSE repository by using anonymous Rsync. I strongly recommended to use another mirror as base source rather than using main download.opensuse.org. It most because the primary source often busy and our Rsync process could increase the server traffic.
Here is how to create a local copy of openSUSE repository :
OSS & Non-OSS Package
- Install Rsync package, by using YAST | Software | Software Management or from konsole with this command:
- Check the mirror content with anonymous Rsync
- Check the content of openSUSE folder
- Making a local copy (Adjust the target folder. I’m currently using /srv/www/htdocs. Beware with the trailing slash “/” (ex : ftp5.gwdg.de::pub/opensuse/distribution/) at the end of folder on the base source URL. Adding the “/” at the end of base source means that we want to copied the CONTENT of the specified folder. If we remove the trailing slash means that we want to copy the folder)
[code language=’cpp’]zypper in rsync [/code]
[code language=’cpp’]rsync ftp5.gwdg.de:: [/code]
[code language=’cpp’]rsync ftp5.gwdg.de::pub/opensuse/ [/code]
[code language=’cpp’]rsync -av –delete-after ftp5.gwdg.de::pub/opensuse/distribution /srv/www/htdocs [/code]
Note : –delete-after means that we want to remove all of file and folder if it was not found in the source and the process will be executed after finishing copy process. Used the exclude prefix if we want to resticted some folder from being copy. Ex : If i wanto to exclude the debug, src-non-oss and src-oss from being copied, I write a text file with the contens :
and then running the 8th step with this command :
[code language=’cpp’]rsync -av –delete –exclude=exclude.txt ftp5.gwdg.de::pub/opensuse/distribution/ /srv/www/htdocs [/code]
I’m using packman repository on the packman.mirrors.skynet.be. Please feel free to change the server with your nearest mirror.
[code language=’cpp’]rsync -av –delete packman.mirrors.skynet.be::packman/suse/ /srv/www/htdocs/packman/[/code]
Add the command into schedule cron job for regular update.