Monday 27 July 2009

IPS repository mirror script

ips-mirror.py is a succesor to my IPS repository mirror script I have put together last year (indiana-discuss thread). I wrote the script in Python this time. It can mirror whole repositories or just parts of them now. It is possible to limit the architecture of the mirrored files now as well. Few interesting use cases:

You can mirror the whole OpenSolaris dev repository if you like. I don't recommend it as there are over 30GB of files to download :). It is doable though:

mkdir $HOME/dev; cd $HOME/dev
ips-mirror.py http://pkg.opensolaris.org/dev/


After the script has done its job, which can take few days in this case, you want to run pkg.depotd with the --rebuild parameter.

/usr/lib/pkg.depotd -d `pwd` -p 10000 --rebuild

pkg.depotd will generate a catalog from the manifests in the pkg directory and start serving the packages. It will also generate search indexes which can take a while.

Mirroring the OpenSolaris 2009.06 release packages for i386:

ips-mirror.py -r 5.11-0.111 -s -a i386 http://pkg.opensolaris.org/release/

Mirroring the latest OpenSolaris packages for i386 from the dev repository:

ips-mirror.py -l -a i386 http://pkg.opensolaris.org/dev/

It is also possible to mirror repositories over https with connection specific certificate and the key:

ips-mirror.py -c /var/pkg/ssl/OpenSolaris_extras.certificate.pem -k /var/pkg/ssl/OpenSolaris_extras.key.pem https://pkg.sun.com/opensolaris/extra/