From owner-freebsd-questions@FreeBSD.ORG Sat May 20 22:11:05 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 0A0FF16A420 for ; Sat, 20 May 2006 22:11:05 +0000 (UTC) (envelope-from e.schuele@computer.org) Received: from sccrmhc12.comcast.net (sccrmhc12.comcast.net [63.240.77.82]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9699943D46 for ; Sat, 20 May 2006 22:11:04 +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 (sccrmhc12) with ESMTP id <20060520221102012005chqse>; Sat, 20 May 2006 22:11:03 +0000 Message-ID: <446F93F7.7040200@computer.org> Date: Sat, 20 May 2006 17:11:03 -0500 From: Eric Schuele User-Agent: Thunderbird 1.5.0.2 (X11/20060426) MIME-Version: 1.0 To: Beech Rintoul References: <446F8282.9060807@computer.org> <200605201332.05804.beech@alaskaparadise.com> In-Reply-To: <200605201332.05804.beech@alaskaparadise.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: 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 22:11:05 -0000 Beech Rintoul wrote: > On Saturday 20 May 2006 12:56, Eric Schuele wrote: >> 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. > > Look at man portsclean. > > Beech > Yes... that's doing the trick. I've used it for cleaning out unreferenced distfiles.... did not know it cleaned up packages as well. Thanks. -- Regards, Eric