Comment trouver un package qui fournit un fichier donné dans OpenSuSE?

11

Je pense à certains comme Contents-<arch>.gzà Debian. Un service réseau était également correct. Existe-t-il?

Élaboration simple: Par exemple, nous avons besoin d'un binaire nommé exampletool, que nous connaissons très bien d'autres distributions ou systèmes d'exploitation. Nous voulons l'installer, par exemple, avec zypper. Mais zypper ne peut installer qu'un paquet. Pour savoir, dans quel package pouvons-nous trouver le exampletoolbinaire requis , nous devons faire pratiquement une recherche, et idéalement une recherche rapide et indexée dans la liste des fichiers des packages actuellement non installés, mais dans les référentiels des packages disponibles . Sur debian, il y a un fichier d'index dans les référentiels de packages nommé Contents-amd64.gz, dans lequel nous pouvons trouver le package requis avec une seule zgrepcommande. Je recherche également une solution similaire à commande unique pour OpenSUSE. S'il n'y en a pas, un service Web était également correct pour la même fonctionnalité.

peterh - Réintégrer Monica
la source

Réponses:

7

Pour rechercher parmi tous les packages disponibles pour trouver un fichier particulier, vous pouvez utiliser l'option wpou à se --provides --match-exacttitre d'exemple:

zypper se --provides --match-exact hg

Vous verrez une sortie similaire à la suivante:

Loading repository data...
Reading installed packages...

S | Name      | Summary                  | Type   
--+-----------+--------------------------+--------
  | mercurial | Scalable Distributed SCM | package

À partir de là, vous pouvez installer le package via une installation zypper standard

zypper in mercurial

Il convient de noter qu'il zypper wpest obsolète et peut ne plus être disponible.

SailorCire
la source
Ce n'est pas toujours fiable. Je ne sais pas pourquoi mais les noms de fichiers tels que zypper search --provides [--match-exact] getenforcene renvoient pas de résultats, alors que le zypper search --provides nslookupfait.
Lester
6

Aux googleurs du futur: à côté de la merveilleuse solution de @SailorCire :-), il y a aussi un outil nommé scout, qui est capable de rechercher dans pratiquement tout, nous pouvons trouver rpm-s pour un binaire comme nous pouvons trouver le jars pour une classe java donnée.

Par exemple, nous pouvons utiliser la bincommande de scout pour découvrir quel package fournit l' hgexécutable:

scout bin hg

Le résultat de cette recherche est le mercurialpackage:

 repository      | package   | path     | binary
-----------------+-----------+----------+--------
 zypp (repo-oss) | mercurial | /usr/bin | hg    
peterh - Réintégrer Monica
la source
Pouvez-vous être un peu plus précis sur l' scoutoutil? Pouvez-vous donner son «nom complet ou URL à son» code?
SebMa
@SebMa Il était téléchargeable depuis rpm, probablement par zypper. Il est possible que ce soit dans un repo non standard. Je ne me souviens pas très bien :-( Je n'utilise plus SuSE. Mais il est fort possible que je le sois, alors je vais le vérifier et expliquer ce que j'ai trouvé. Il est possible que SuSE ait beaucoup changé depuis lors
peterh
Sur mon appareil Jolla1 (SailFishOS), zypper wp scoutditNo matching items found.
SebMa
@SebMa Googler pour "rpm outil scout" J'ai trouvé ce lien sur le vif, dans le moment actuel, je ne peux pas aider davantage. Vous devrez probablement l'installer à partir d'un référentiel non standard.
peterh
Sur le lien que vous avez fourni, il est écrit: "Scout est une interface vers les notes Tomboy ou Gnote qui utilise DBus pour communiquer." Je ne suis pas sûr que ce soit l'outil que nous recherchons.
SebMa
1

J'utilise Gecko Linux XFCE. J'ai ouvert Yast2 et installé gnome-search-tool et gnome-shell-search-provider-nautilus . Cela fonctionne bien, tout comme le poisson-chat.

Ross Vassilev
la source