pkg_upgrade (was Re: pkg_add does not backtrack, does it?)

Michel TALON talon at lpthe.jussieu.fr
Fri Feb 9 11:39:18 UTC 2007


Joan Picanyol i Puig wrote:

> Been there, done that, cried. I've also tried portmanager and portmaster
> (which I'm using now with portsconf for source-based systems). My wish
> is pkg_update, which can be used to upgrade pkg_add'ed packages.

Funny that i have just announced a program, that i have called pkgupgrade
(by analogy with portupgrade, i was not aware of his other work), and whose
aim is precisely to do the things you want - i don't pretend it succeeds
perfectly, there may be bugs in it, but its aim is indeed to be a substitute to
portupgrade, with some differences.
- First i don't want to mess in any ways with "rectifying" the informtion in 
/var/db/pkg like portupgrade or portmaster do. I think this is a big error.
- Similarly i don't want to maintain a database of ports or packages like
portupgrade does. Experience shows that the database connector is constantly
broken, or the API changes or whatever causing constant grief.
- And finally these programs are so slow as to be essentially unusable for me.
I cannot tolerate to spend several hours that portupgrade -PP upgrades my KDE
installation, with all the packages present on FreeBSD cdrom disk2.

This program is completely free, under BSD licence, you can do whatever 
you want with it. I would be very happy if people improve it. On the downside,
for some people it is written in python. With respect to the INDEX problem
you need a ports tree reasonably up todate, but you don't need an INDEX, it
will be built on the fly for the ports which are installed and recursively all
dependencies. It will also download the INDEX from the corresponding RELEASE
packages directory, and based on that choose to download all possible
precompiled packages and build the rest. It will also download at high speed
all necessary packages, and backup shared libraries and config files of
packages scheduled to be replaced. The end result is a shell script which does
the effective job in one stroke, very fast. The program itself doesn't need 
any root privileges, and runs in a time of the order of less than a minute to 
perhaps 5 minutes i you have many installed packages.

You can find it at:
http://www.lpthe.jussieu.fr/~talon/pkgupgrade
as well as the necessary companion program to do backups:
http://www.lpthe.jussieu.fr/~talon/save_pkg.py
written by Cyrille Szymanski who has kindly given me permission to
publish it here.
Running save_pkg.py -h gives usage information.

A documentation explaining pkgupgrade can be found here:
http://www.lpthe.jussieu.fr/~talon/freebsdports.html#htoc19


The announce was in cubfm 
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Pkgupgrade
Date: Wed, 31 Jan 2007 16:19:18 +0000 (UTC)



-- 

Michel TALON



More information about the freebsd-hackers mailing list