Date: Thu, 14 Nov 2002 00:15:50 +0200 From: Lefteris Tsintjelis <lefty@ene.asda.gr> To: conrads@cox.net Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Port managment Message-ID: <3DD2CF16.4F5DDE74@ene.asda.gr> References: <XFMail.20021108230633.conrads@cox.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Conrad Sabatier wrote: > > On 08-Nov-2002 Lefteris Tsintjelis wrote: > > Conrad Sabatier wrote: > >> > >> On 08-Nov-2002 Lefteris Tsintjelis wrote: > >> > Just to sum it up for the archives > >> > > >> > Conrad Sabatier wrote: > >> >> > >> >> On 07-Nov-2002 Lefteris Tsintjelis wrote: > >> >> > Hi, > >> >> > > >> >> > I have acrually a few questions: > >> >> > > >> >> > 1) How can I find ports that do not depend in any other ports? > >> >> > >> >> pkg_info -ar > >> > > >> > Or, a very nice port (/usr/ports/sysutils/pkg_tree) I just found. It > >> > does the same job with better on screen results. It can even display > >> > dependencies of the dependencies in a nice graphical tree. > >> > > >> > pkg_tree -v > >> > >> Interesting. I'll have to have a look at that. > >> > >> >> > 2) How can I find files that are unused by any port? > >> >> > >> >> /usr/ports/Tools/scripts/check_consistency > >> > > >> > I think /usr/ports/Tools/scripts/consistency-check examines modified > >> > files within /usr/local/bin only. > >> > > >> >> or > >> >> > >> >> pkg_which file(s) > >> > > >> > A better way to examine files in any path would be to use pkg_which -v > >> > Something like "find <PATH PATH ...> -type f | xargs pkg_which -v | > >> > fgrep '?'" would check against any port in any path. > >> > >> Well, yes, I didn't elaborate any further on this one. Just wanted to > >> point you in the right direction. :-) > > > > Yes, I believe you did. :-) > > > >> >> > 3) How can I find modified files? > >> >> > >> >> pkg_info -ag > >> >> > >> >> > 4) How can I find missing port files? > >> >> > >> >> Need some clarification as to what you mean. > >> > > >> > I think your previous answer covers this one as well. I meant if any > >> > of > >> > the already installed port files are missing. "pkg_info -ag" displays > >> > results of any modified/missing port files. > >> > Is there a way to also check the system (/bin /sbin ...) for > >> > modified/missing/extra files? > >> > >> man mtree > > > > That certainly takes care of that too! > > > >> >> > 5) _AND_ (yes finally) How can I find missing port dependencies? > >> >> > >> >> pkg_info -I $(pkg_info -arq | cut -d ' ' -f 2) > >> > > >> > I am not sure here if the results are any missing port dependencies. I > >> > get a multiple list of the ports that are already installed. > >> > >> Well, the idea here is that if a package is missing, an error message > >> will > >> be displayed. Perhaps a better way to run this would be: > >> > >> pkg_info -I $(pkg_info -arq | cut -d ' ' -f 2) >/dev/null > >> > >> So only any errors will actual display. > > > > I see. There is also a nice sysutil port /usr/ports/sysutils/libchk. It > > checks almost any shared libraries links. I guess that about sums it up. > > Using the above commands, you could check almost everything in your file > > system. Great job, thanks. The idea here is to always be able to check > > the > > whole system against minor data corruption problems or accidental > > deletes or unknown files and file modifications. Is there anything else > > I might be missing? > > I recently hacked together a little script to check for stale symbolic > links: > > #!/bin/sh > # > # Check symbolic links to make sure they're valid pointers > > if [ $# -eq 0 ] > then > root=/ > else > root="$(realpath $1)" > fi > > IFS=$(echo -e "\n") > > find "$root" -type l | while read link > do > echo -n Checking "$link..." > lp="$(readlink "$link")" > if [ ! -e "$lp" ] && [ ! -e "$(dirname "$link")/$lp" ] > then > echo Bad link: "$link" -- "$lp" does not exist > else > echo OK > fi > done There is also another way. You might want to check out this port called symlinks (/usr/ports/sysutils/symlinks). It can check out links as simple as: symlinks -r / | grep ^dangling It can change absolute/messy links to relative, delete dangling links, recurse into subdirs and shorten lengthy links. :-) All in one! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DD2CF16.4F5DDE74>