Mailinglist Archive: opensuse-features (18 mails)

< Previous Next >
[openFATE 308437] zypper search in package content
Feature changed by: Stefan Löwen (datamaan)
Feature #308437, revision 28
Title: zypper search in package content

openSUSE-11.3: Evaluation by product manager
Priority
Requester: Important

openSUSE Distribution: Unconfirmed
Priority
Requester: Important

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

Description:
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.

Discussion:
#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
http://wiki.mandriva.com/en/Tools/urpmi#urpmf), 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 libpng12.so    # No providers of 'libpng12.so' found.
zypper wp libpng12.so.0     # finds libpng12-0
zypper wp libpng12.so.0.39.0     # No providers of 'libpng12.so.0.39.0'
found.
 
$ rpm -ql libpng12-0
/usr/lib64/libpng12.so.0
/usr/lib64/libpng12.so.0.39.0
 
$ rpm -ql libpng-devel | grep so
/usr/lib64/libpng.so
/usr/lib64/libpng12.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,    libcurl.so.3,
...
 
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.so.0()(64bit)
libpng12.so.0(PNG12_0)(64bit)
libpng12.so.0(libpng12.so.0)(64bit)
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
http://packman.iu-bremen.de/suse/openSUSE_12.1
(http://packman.iu-bremen.de/suse/openSUSE_12.1)
(Packman2)

#9: Ruarí Ødegaard (ruario) (2012-01-20 12:54:20)
This does seem like such an obvious missing feature, so it should be
possible in openSUSE. Pretty much every major distro allows for
something like this, e.g.
Fedora = "yum provides '*/[file]'" Mandriva = "urpmf [file]" Debian
based distros/APT = "apt-file search [file]" Slackware = "slackpkg file-
search [file]" ArchLinux = "pkgfile -si '*/[file]'" ...etc.

#10: Rizki Aulia Rachman (operamaniac) (2013-06-06 23:36:13)
Very important feature, i think its a great idea.

+ #11: Stefan Löwen (datamaan) (2016-06-06 17:11:15)
+ As far as I know zypper still has no comparable feature is that right?
+ I miss this quite often when I try to compile something and get
+ something like "could not find XYZ.h"




--
openSUSE Feature:
https://features.opensuse.org/308437

< Previous Next >
List Navigation
This Thread
References