Date: Mon, 16 Jul 2001 21:29:55 +1000 From: "Andrew Reilly" <areilly@bigpond.net.au> To: Cy Schubert - ITSD Open Systems Group <Cy.Schubert@uumail.gov.bc.ca> Cc: abram olson <dacia_icarus@yahoo.com>, Kris Kennaway <kris@obsecurity.org>, stable@FreeBSD.ORG Subject: Re: mass uninstall all ports? Message-ID: <20010716212955.A13345@gurney.reilly.home> In-Reply-To: <200107151507.f6FF7J906933@cwsys.cwsent.com>; from Cy.Schubert@uumail.gov.bc.ca on Sun, Jul 15, 2001 at 08:06:50AM -0700 References: <20010715072109.16767.qmail@web13503.mail.yahoo.com> <200107151507.f6FF7J906933@cwsys.cwsent.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jul 15, 2001 at 08:06:50AM -0700, Cy Schubert - ITSD Open Systems Group wrote: > Watching this discussion I've been toying around with the idea of > creating a pkg_tree application, which would print out port > dependencies. However I won't entertain starting that project until my > new Tripwire 2.3.1 port is complete, which is currently being tested in > parallel with Tripwire 1.3.1, which I think should be fully tested and > ready for inclusion in our ports collection in about 2-4 weeks from now. Just in case anyone wants some other perspectives, I have been toying with a package updating/rebuilding mechanism of compiling a list of everything that is currently installed, in dependancy order, then blowing everything away, then rebuilding from the list. Here's my dependancy-ordered list building script. It's rough, and it has some ugly hacks to select only the version that I'm actually interested in, where ports are available in multiple versions: #!/bin/sh ls -1 /var/db/pkg |\ sed -e 's/-[^-]*$//' |\ while read i; do grep "^$i-[^-]*|" /usr/ports/INDEX ; done |\ sed -e '/^netscape-navigator-4.08/d;/^python-1.5/d;/^mpd-2/d;/^samba-2.2/d;/^tk-8\.[02]/d;/^tcl-8\.[02]/d;/^squid-2.[23]/d;/^bash-1/d;/^xemacs-19/d;/^xemacs-20/d;/^tkrat-1/d' |\ awk -F \| '{print $1, $8, $9}' |\ sed -e 's/XFree86-3.3.6_9/XFree86-4.1.0_4/g;s/ghostscript-5.50a/ghostscript-6.50_6/g;/^python-2.0/d' |\ awk '{ if (NF>1) for (i=2; i<NF; i++) print $i, $1; else print $1, $1 }' |\ tsort The first time I've used this, I follow it with another pipe that produces a list of /usr/ports/foo/bar directories that corresponds to each of the port names, and then run a loop that cd's to each of them in turn, and does a make install clean. The only catches that I came across were: * The 'distfiles' that I've been maintaining by CVS or patch (mozilla, wine, XFree86) generally fail the checksum test, and I haven't worked out a way to assert IGNORE_CHECKSUM just for those. * Some of the ports require interaction. I dare say that there is a flag to turn this off, but I haven't found it yet. * There's some ugly interaction with openGL, the XFree86-4/matrox G200 gl support and the xscreensaver port that always stops the gnome port from building. I usually just comment that line out of the RUN_DEPENDS in the makefile. -- Andrew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010716212955.A13345>