Date: Fri, 4 Apr 2003 16:14:19 +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: <20030404131419.GF7008@straylight.oblivion.bg> In-Reply-To: <E191P70-000Iw8-00@cs.huji.ac.il> References: <20030403223006.GD15705@rot13.obsecurity.org> <E191P70-000Iw8-00@cs.huji.ac.il>
next in thread | previous in thread | raw e-mail | index | archive | help
--R6sEYoIZpp9JErk7
Content-Type: text/plain; charset=windows-1251
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
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
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:
pkg_info -qL package | wc -l
pkg_info -qg package | wc -l
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.
Moreover, if you are only interested in the existence of the files, it
would be easier to do something like:
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
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
"yields falsehood, when appended to its quotation." yields falsehood, when =
appended to its quotation.
--R6sEYoIZpp9JErk7
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE+jYUr7Ri2jRYZRVMRAr7JAKC1zLF9tLIQfHVZfrJK0CyAMXTNTgCgwbuV
HmPSc7+FyNmjBgct4RwqoD8=
=fplt
-----END PGP SIGNATURE-----
--R6sEYoIZpp9JErk7--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030404131419.GF7008>
