[Rpm-maint] rpm feature

seth vidal skvidal at fedoraproject.org
Thu Jun 17 16:07:30 UTC 2010


On Thu, 2010-06-17 at 09:04 -0700, JD wrote:
> 
> On 06/17/2010 08:33 AM, seth vidal wrote:
> > On Thu, 2010-06-17 at 08:27 -0700, JD wrote:
> >    
> >> On 06/17/2010 12:50 AM, Panu Matilainen wrote:
> >>      
> >>> On Wed, 16 Jun 2010, seth vidal wrote:
> >>>
> >>>        
> >>>> On Wed, 2010-06-16 at 09:44 -0400, Adam Jackson wrote:
> >>>>          
> >>>>> On Wed, 2010-06-16 at 08:53 -0400, seth vidal wrote:
> >>>>>            
> >>>>>> On Wed, 2010-06-16 at 00:30 -0700, JD wrote:
> >>>>>>              
> >>>>>>> Greetings all,
> >>>>>>> Is there a way to query the database to list the packages
> >>>>>>> that depend on a given package?
> >>>>>>> I checked the man page, and I do  not see such an option.
> >>>>>>> I see the option --requires, which is great - but would like the
> >>>>>>> converse of --requires,  such as: --required_by
> >>>>>>>                
> >>>>>> rpm -q --whatrequires pkgname will tell you what specifically requires
> >>>>>> that pkg name - but not all the things that pkg provides.
> >>>>>>              
> >>>>> For that, you would do:
> >>>>>
> >>>>> % rpm --quiet -q --whatrequires $(rpm -q --provides pkgname) | sort -u
> >>>>>
> >>>>> The uniquifying step being because rpm will print the list of consumers
> >>>>> for _each_ thing provided by pkgname.
> >>>>>            
> >>>> but you'll need to do every file in the pkg, too.
> >>>>
> >>>> b/c of file-requires.
> >>>>          
> >>> One possibility is "abusing" --test with erasure, eg:
> >>> $ rpm -e --test<pkg>
> >>>
> >>> To get just the depending package names something like this works:
> >>> $ rpm -e --test<pkg>  2>&1 | tail -n +2 |awk '{print $NF'}
> >>>
> >>>      - Panu -
> >>>        
> >> Yes - that works nicely
> >> rpm -e --test libguestfs 2>&1 | tail -n +2 |awk '{print $NF'}
> >> libguestfs-java-1:1.2.9-2.fc13.i686
> >> ocaml-libguestfs-1:1.2.9-2.fc13.i686
> >> perl-libguestfs-1:1.2.9-2.fc13.i686
> >> guestfish-1:1.2.9-2.fc13.i686
> >> python-libguestfs-1:1.2.9-2.fc13.i686
> >> ruby-libguestfs-1:1.2.9-2.fc13.i686
> >> libguestfs-java-1:1.2.9-2.fc13.i686
> >> ocaml-libguestfs-1:1.2.9-2.fc13.i686
> >> perl-libguestfs-1:1.2.9-2.fc13.i686
> >> guestfish-1:1.2.9-2.fc13.i686
> >> libguestfs-tools-1:1.2.9-2.fc13.i686
> >> libguestfs-javadoc-1:1.2.9-2.fc13.i686
> >> libguestfs-java-devel-1:1.2.9-2.fc13.i686
> >> python-libguestfs-1:1.2.9-2.fc13.i686
> >> ruby-libguestfs-1:1.2.9-2.fc13.i686
> >>
> >> But why is the name slighly mangled with the insertion of 1:
> >> into the name? What's the usefulness of that?
> >>
> >>      
> > that's the package epoch.
> >
> > 3 values make up the package versioning:
> >
> > epoch
> > version
> > release
> >
> > that's the epoch.
> > -sv
> >    
> 
> Is that necessitated by the possibility of installing more than one 
> epoch of a package?
> 

It is listed b/c it is possible to have two pkgs that only vary in the
epoch - so to make sure you are being completely specific and clear, you
list the epoch, too.

-sv




More information about the Rpm-list mailing list