Mailinglist Archive: opensuse-features (130 mails)

< Previous Next >
[openFATE 308437] zypper search in package content
Feature changed by: H.Merijn Brand (TuxCM)
Feature #308437, revision 16
Title: zypper search in package content

openSUSE-11.3: Evaluation by product manager
Requester: Important

Requested by: Michal Vyskocil (mvyskocil)
Product Manager: Federico Lucifredi (flucifredi)
Partner organization:

Zypper search should be extended to search also in a filelist of
package, which can make webpin or package pin obsolete.
zypper search --search-content gpm.h
Will return all packages matching 'gpm.h' string in a filelist.

#1: Roberto Mannai (robermann79) (2009-12-01 19:00:10)
webpin still would allow searching inside a not installed package

#2: Tim Edwards (tk83) (2010-01-27 16:19:50)
This feature is especially important when you're compiling software.
For example today I was building something and gcc complained that
glibconfig.h was missing. There was no way to find out which of the
hundreds of -devel packages provided this file, except for guessing (it
was in glib2-devel). Many header files are much more difficult to find
than glib ones.
In Mandriva, which has this feature (see, I could've just done:
urpmf glibconfig.h
and it would've said 'glib2-devel'

#3: Tino K (tk52) (2010-09-09 16:04:36)
Very important feature, very much needed! zypper wp provides some of
the functionality but is too crippled to be useful. For example
zypper wp    # No providers of '' found.
zypper wp     # finds libpng12-0
zypper wp     # No providers of ''
$ rpm -ql libpng12-0
$ rpm -ql libpng-devel | grep so
Even the man page is not quite correct as it says:
   The  NAME  component  of a capability is not only a package name but
   any   symbol   provided   by   packages:   /bin/vi,,
However we get:
zypper wp /bin/vim     # No providers of '/bin/vim' found.
I understand the reason for this behaviour is that zypper does not save
the entire file list of each rpm package (rpm -ql) in the repodata
directory but only what each package provides (rpm -q --provides).
$ rpm -q --provides libpng12-0
libpng = 1.2.39-2.2
libpng12-0 = 1.2.39-2.2
libpng12-0(x86-64) = 1.2.39-2.2
$ rpm -q --provides libpng-devel
libpng-devel = 1.2.39-2.2
libpng-devel(x86-64) = 1.2.39-2.2
I would very much recommend for zypper to save the entire file list
(rpm -ql) of each package in the repodata directory
/var/cache/zypp/raw/<repo name>/repodata/....xml.gz
That will inflate the file sizes quite a bit but that's just a small
price to pay for essential information.

#4: Luis Medinas (lmedinas) (2010-09-09 16:25:04)
I find this feature really important. See what urpmq (urpmi from
mandriva) can do. This is really useful for developers and powerusers.
This is just what zypper is missing.

#5: Carlos Mafra (crmafra) (2011-03-01 13:34:50)
Yes, this would save a lot of time when there is a missing header file
in a failed compilation. I've just had this /usr/include/gnu/stubs.h:7:
27: error: gnu/stubs-32.h: Datei oder Verzeichnis nicht gefunden make
[5]: *** [_muldi3.o] Fehler 1
In fact, this error motivated me to look for an option to 'zypper
search' which would do the search in the file list, just to find out
that there is none. Googling more about it and I found this feature
request :-)

#6: Harald Jagenteufel (n0s) (2011-05-10 13:09:19)
any updates on this one?

#7: Moqi Ba (bamoqi) (2011-07-16 08:56:32)
Yes please add this feature. It is one very important feature to help
newcomers to pick up openSUSE.

+ #8: H.Merijn Brand (tuxcm) (2012-01-19 16:42:42)
+ In the same line of querying, I'd realy like to see an option to show
+ me what *repository* the current installed file came from. The package
+ of course is important, but if 'zypper se package' doesn't show up
+ anything on a fresh machine, I have to add repositories I already added
+ to other boxes, and instead of just blindly adding all repositories
+ that box has enabled, I'd like to just add what I need.
+ Something like
+ $ zypper wr /usr/bin/di di-4.31-4.1.x86_64 comes from
+ (Packman2)

openSUSE Feature:

< Previous Next >