Date: Fri, 4 Apr 2003 16:20:54 +0300 From: Peter Pentchev <roam@ringlet.net> To: Danny Braniss <danny@cs.huji.ac.il> Cc: Kris Kennaway <kris@obsecurity.org> Subject: Re: ports and /var/db/pkg Message-ID: <20030404132054.GG7008@straylight.oblivion.bg> In-Reply-To: <20030404131419.GF7008@straylight.oblivion.bg> References: <20030403223006.GD15705@rot13.obsecurity.org> <E191P70-000Iw8-00@cs.huji.ac.il> <20030404131419.GF7008@straylight.oblivion.bg>
next in thread | previous in thread | raw e-mail | index | archive | help
--RDS4xtyBfx+7DiaI Content-Type: text/plain; charset=windows-1251 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Apr 04, 2003 at 04:14:19PM +0300, Peter Pentchev wrote: > On Fri, Apr 04, 2003 at 02:11:58PM +0300, Danny Braniss wrote: > >=20 > > > > ok, so i wrote a small script (tcl, since i don't know perl), that > > > > does some checking, it reports for each package, the number of files > > > > how many are realy there, and if so, checks the MD5. > > > > > > > > now, if im not to far off, if some/all files are missing, or if the > > > > md5 does not match, i should be able to remove the package info, ... > > >=20 > > > Well, that's not what you were asking for originally, and tools > > > already exist to check that. > >=20 > > OK, let me refrase it > >=20 > > PROBLEM: > > how to update /var/db/pkg, when it knows too much, > > i.e. /usr/local has less stuff that /var/db/pkg knows about. > > =09 > > >=20 > > > e.g. pkg_info -g and the example from the pkg_which(1) manpage that I > > > mentioned to you in a previous email. > >=20 > > i read most of the pkg*, and though im very impressed, i fail to find a > > clear/easy way to get a one line output saying: > > pkg xyz no longer exits, can be removed from database >=20 > If you are only interested in packages which no longer have *any* files > on the filesystem, then compare the output of the following two > commands: >=20 > pkg_info -qL package | wc -l > pkg_info -qg package | wc -l >=20 > If the output of those two commands is the same, then there are no valid > package files left at all, and a pkg_delete -f is in order. >=20 > Moreover, if you are only interested in the existence of the files, it > would be easier to do something like: >=20 > remove=3D1 > pkg_info -qL package | while read fname; do > [ -f "$fname" ] && remove=3D0 > done > if [ $remove =3D=3D "1" ]; then pkg_delete package; fi Just one more comment: the reason I stick to pkg_delete -f instead of rm -rf /var/db/pkg/package is that the /var/db/pkg scheme is not really set in stone: the correct way to manipulate the package database is *only* via the pkg_* tools. Well, there is something to be said about the tools available in ports/sysutils/portupgrade, but then, they are actively maintained by knu, who will most probably track any changes in the base system handling of packages, if and when those should occur. G'luck, Peter --=20 Peter Pentchev roam@ringlet.net roam@sbnd.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 Hey, out there - is it *you* reading me, or is it someone else? --RDS4xtyBfx+7DiaI Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+jYa27Ri2jRYZRVMRAsbWAKCJseyYdZYkOdehhIcmihg1SdYChgCgi5nb GINrqzrGxnXIcbvAUunosWA= =sfzA -----END PGP SIGNATURE----- --RDS4xtyBfx+7DiaI--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030404132054.GG7008>