Feature changed by: Ruarí Ødegaard (ruario) Feature #308437, revision 18 Title: zypper search in package content openSUSE-11.3: Evaluation by product manager 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. -- openSUSE Feature: https://features.opensuse.org/308437