root rpm package list?

JD jd1008 at gmail.com
Thu Nov 4 02:20:32 UTC 2010


On 11/03/2010 06:36 PM, Tom Horsley wrote:
> On Wed, 3 Nov 2010 20:58:05 -0400
> Tom Horsley wrote:
>
>> deplist is looking the most promising so far.
> It isn't fast, but it seems to work. I whipped out a
> little "find-roots" perl script to do the job:
>
> #!/usr/bin/perl -w
> #
> # Long running script to find all the deps of all the packages
> # then find all the installed rpms that are not deps of anything.
> #
> use strict;
>
> my %rpms;
> my $fh;
>
> # This is the bit that takes forever to run, and it also (apparently)
> # describes every package in every repo that might provide a dependency,
> # so the list this generates is about 10 times larger than the actual
> # installed base.
>
> open($fh, '-|', 'yum', 'deplist', '*');
> while (<$fh>) {
>     if (/^\s*provider:\s*(\S+)\s*\S+\s*$/) {
>        $rpms{$1} = 1;
>     }
> }
> close($fh);
> undef($fh);
>
> # Getting the list of actual installed rpms is much less time consuming.
>
> my %installed;
> open($fh, '-|', 'rpm', '-q', '--qf', '%{NAME}.%{ARCH}\n', '-a');
> while (<$fh>) {
>     chomp;
>     $installed{$_} = 1;
> }
> close($fh);
> undef($fh);
>
> # Now we print all the rpms that are installed, but which do not show
> # up as a provider of any dependency.
>
> foreach $_ (sort(keys(%installed))) {
>     if (! exists($rpms{$_})) {
>        print "$_\n";
>     }
> }
Tried it Tom.
The roots it produced turned out to have  a long list of deps.
One them was  zoneminder.i686

So, I ran
rpm -qR zoneminder
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/sbin/chkconfig
/sbin/chkconfig
/sbin/service
/sbin/service
/usr/bin/perl
config(zoneminder) = 1.24.2-4.fc13
httpd
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.11)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libc.so.6(GLIBC_2.7)
libdl.so.2
libgcc_s.so.1
libgcc_s.so.1(GCC_3.0)
libgnutls-openssl.so.26
libjpeg.so.62
libm.so.6
libm.so.6(GLIBC_2.0)
libm.so.6(GLIBC_2.1)
libmysqlclient.so.16
libmysqlclient.so.16(libmysqlclient_16)
libpcre.so.0
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.1)
libpthread.so.0(GLIBC_2.2)
libpthread.so.0(GLIBC_2.3.2)
libstdc++.so.6
libstdc++.so.6(CXXABI_1.3)
libstdc++.so.6(GLIBCXX_3.4)
libz.so.1
perl >= 0:5.006
perl(:MODULE_COMPAT_5.10.1)
perl(Archive::Tar)
perl(Archive::Zip)
perl(Carp)
perl(DBD::mysql)
perl(DBI)
perl(Data::Dumper)
perl(Date::Manip)
perl(Device::SerialPort)
perl(Exporter)
perl(Fcntl)
perl(File::Find)
perl(Getopt::Long)
perl(IO::Handle)
perl(LWP::UserAgent)
perl(MIME::Entity)
perl(MIME::Lite)
perl(Module::Load)
perl(Net::FTP)
perl(Net::SMTP)
perl(PHP::Serialization)
perl(POSIX)
perl(Socket)
perl(Storable)
perl(Sys::Syslog)
perl(Time::HiRes)
perl(ZoneMinder)
perl(ZoneMinder::Base)
perl(ZoneMinder::Config)
perl(ZoneMinder::ConfigAdmin)
perl(ZoneMinder::Control)
perl(ZoneMinder::Database)
perl(ZoneMinder::Debug)
perl(ZoneMinder::General)
perl(ZoneMinder::Memory)
perl(ZoneMinder::Trigger::Channel)
perl(ZoneMinder::Trigger::Channel::Handle)
perl(ZoneMinder::Trigger::Channel::Inet)
perl(ZoneMinder::Trigger::Channel::Serial)
perl(ZoneMinder::Trigger::Channel::Spawning)
perl(ZoneMinder::Trigger::Channel::Unix)
perl(ZoneMinder::Trigger::Connection)
perl(bytes)
perl(constant)
perl(lib)
perl(strict)
perl(warnings)
php
php-mysql
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

So, how could zoneminder package be a root package?


More information about the users mailing list