On Fri, Apr 04, 2003 at 02:11:58PM +0300, Danny Braniss wrote: > > > > 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, ... > > > > Well, that's not what you were asking for originally, and tools > > already exist to check that. > > OK, let me refrase it > > 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. > > > > > e.g. pkg_info -g and the example from the pkg_which(1) manpage that I > > mentioned to you in a previous email. > > 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=1 pkg_info -qL package | while read fname; do [ -f "$fname" ] && remove=0 done if [ $remove == "1" ]; then pkg_delete package; fi G'luck, Peter -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] 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.
pgp00000.pgp
Description: PGP signature