From owner-freebsd-questions@FreeBSD.ORG Sat May 20 20:56:35 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD97B16A424 for ; Sat, 20 May 2006 20:56:35 +0000 (UTC) (envelope-from e.schuele@computer.org) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.200.81]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6332043D46 for ; Sat, 20 May 2006 20:56:35 +0000 (GMT) (envelope-from e.schuele@computer.org) Received: from [192.168.214.215] (c-24-1-232-64.hsd1.tx.comcast.net[24.1.232.64]) by comcast.net (sccrmhc11) with ESMTP id <2006052020563401100qedf8e>; Sat, 20 May 2006 20:56:34 +0000 Message-ID: <446F8282.9060807@computer.org> Date: Sat, 20 May 2006 15:56:34 -0500 From: Eric Schuele User-Agent: Thunderbird 1.5.0.2 (X11/20060426) MIME-Version: 1.0 To: FreeBSD Questions Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Managing a [local] package repository.... X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 May 2006 20:56:37 -0000 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