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 [EMAIL PROTECTED]
with "unsubscribe freebsd-questions" in the body of the message

Reply via email to