Date: Sat, 20 May 2006 15:56:34 -0500 From: Eric Schuele <e.schuele@computer.org> To: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Managing a [local] package repository.... Message-ID: <446F8282.9060807@computer.org>
next in thread | raw e-mail | index | archive | help
Hello, I'm wondering how others manage a local store of packages... or even if anyone does this sort of thing. Let me explain... Some short time back I decided to start stockpiling packages of all the ports I have installed on my machine. I was/am doing this because I intend on doing a fresh install to 6.1-RELEASE when I have the time. But, although I do prefer to compile the ports (as opposed to downloading the packages) I do not wish to recompile them all *again*, because it is a significant amount of time. I intend to just transfer them to the new installation. So I wrote a small script (appended below, comments welcome) to create packages of everything on my system. I did that one time, and have since done "make install package clean" to install new packages, and done "portupgrade -aprR" to upgrade those presently installed. While this does seem to work well for me, it has left one problem I did not foresee. As ports get upgraded, their new package is built and placed in my package dir, but the *old* port's package is not removed. So I now have quite a few packages in my package directory that are not the most recent, and hence are just taking up space. Example (/usr/ports/packages/All): ---- ImageMagick-6.2.5.5_4.tbz ORBit-0.5.17_3.tbz ORBit2-2.14.0.tbz <--- ORBit2-2.14.0_1.tbz <--- OpenSP-1.5_7.tbz aspell-0.60.4_3.tbz at-spi-1.7.7.tbz <--- at-spi-1.7.7_1.tbz <--- aterm-1.0.0_1.tbz atk-1.11.4.tbz <--- atk-1.11.4_1.tbz <--- autoconf-2.13.000227_5.tbz autoconf-2.59_2.tbz automake-1.4.6_2.tbz automake-1.9.6.tbz avahi-0.6.10.tbz <--- avahi-0.6.10_1.tbz <--- avahi-0.6.10_3.tbz <--- avahi-0.6.9_5.tbz <--- ----- So my question is: Is there a way to automatically remove the old packages as existing packages get upgraded? Or is there some more appropriate means for generating packages (and keeping them up to date) that I could transfer to a fresh install (or even another machine for that matter)? My mk_pkgs.sh. Comments are appreciated. ================= #!/bin/sh # This will create a binary package for all ports installed on a machine. # It will place the packages in /usr/ports/packages/All db_pkg_dir=/var/db/pkg pkg_dir=/usr/ports/packages/All mkdir -p $pkg_dir cd $db_pkg_dir for dname in * do if [ "$dname" != "pkgdb.db" ] then pkg_create -v -b $dname $pkg_dir/$dname.tbz fi done =============== Thanks for your help. -- Regards, Eric
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?446F8282.9060807>