Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 08 Nov 2002 23:06:33 -0600 (CST)
From:      Conrad Sabatier <conrads@cox.net>
To:        Lefteris Tsintjelis <lefty@ene.asda.gr>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Port managment
Message-ID:  <XFMail.20021108230633.conrads@cox.net>
In-Reply-To: <3DCBC81B.BE5526EB@ene.asda.gr>

next in thread | previous in thread | raw e-mail | index | archive | help

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

-- 
Conrad Sabatier <conrads@cox.net>

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?XFMail.20021108230633.conrads>