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
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to