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? -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines