Re: finding orphaned files

devzero2000 <[email protected]> Wed, 23 Jul 2008 10:15:54 +0200
Newsgroups gmane.linux.redhat.rpm.general
Message-ID <[email protected]>
On Tue, Jul 22, 2008 at 6:03 PM, <[email protected]> wrote:

>
>
> [email protected] wrote on 07/21/2008 04:06:15 PM:
>
> > Hi Greg-
> >
> >     First a question back at you - it seems like your first step
> > replicates the --verify option to some extent. Is there some info not
> > provided by --verify that you need for step 1?
>
> programatic access.  It doesn't check all the other bits that -V does, and
> also allows me to manipulate the list without the need of parsing the
> output of rpm -Va.
>
> >     About "2:" - I find when I set up the spec file for an rpm, it's
> > best to only define %directory that I'm pretty sure won't already exist.
> > For example, I would  define it for /opt/mypackage, but not /opt. If you
> > have control over the spec files for the rpms you're talking about, you
> > could trim these unneeded %directory entries to reduce the orphaned
> > directories output from your script.
> >
> >     Also, I think you'll find that orphaned files are sometimes config
> > files, which are retained if they have been edited before rpm removal.
>
> Fortunately, I am not responsible for all of the RedHat RPMs.
> Unfortunately, I'm only responsible for a handful of our own RPMs.  Even
> more unfortunately, some of the modifications on the systems (additional
> apps and such) aren't always added with RPM.  Its this last scenario that I
> am trying to provide the enumeration for.  The question was more towards
> being able to tell which way an rpm owned a directory and its contents with
> only access to the RPM database.


This simple script give you which rpm own which dir.

_t_d=$(mktemp -d -p /tmp)
_f_f=$(mktemp -p ${_t_d} XXXXXXX)
for _pkg in $(rpm -qa --qf '%{name}-%{version}\n' | sort | uniq)
do
 rpm -q --qf '%{name} owns %{dirnames}\n' ${_pkg} | uniq >> ${_f_f}
done
echo "wrote ${_f_f}"

FYI, rpm5 have implicit dependency on parent dir o filelinkto (so it is no
possible to have orphan dir for example: this resolve many problem on
package removal or upgrade). IMHO, Orphan file aren't an issue, IMHO, if
they live in /var or  in a volatile filesystem .

hth




>
> -greg
>
> _______________________________________________
> Rpm-list mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/rpm-list
>

_______________________________________________
Rpm-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/rpm-list