¿Cómo encuentro un paquete que proporcione un archivo determinado en OpenSuSE?

11

Estoy pensando en algunos como Contents-<arch>.gzen Debian. Un servicio de red también estaba bien. ¿Existe?

Elaboración simple: por ejemplo, necesitamos un nombre binario exampletool, que sabemos muy bien de otras distribuciones o sistemas operativos. Queremos instalar eso, por ejemplo, con zypper. Pero zypper solo puede instalar un paquete. Para averiguar, en qué paquete podemos encontrar el exampletoolbinario requerido , necesitamos hacer prácticamente una búsqueda, e idealmente una búsqueda rápida e indexada en la lista de archivos de los paquetes actualmente no instalados, pero en los repositorios disponibles . En debian, hay un archivo de índice en los repositorios de paquetes llamado Contents-amd64.gz, en el que podemos encontrar el paquete requerido con un solo zgrepcomando. Estoy buscando una solución similar de un solo comando para OpenSUSE, también. Si no hay ninguno, un servicio web también está bien para la misma funcionalidad.

peterh - Restablece a Monica
fuente

Respuestas:

7

Para buscar en todos los paquetes disponibles para encontrar un archivo en particular, puede usar la opción wpo se --provides --match-exactcomo ejemplo:

zypper se --provides --match-exact hg

Verá una salida similar a la siguiente:

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

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

Desde ese punto, puede instalar el paquete a través de una instalación estándar de zypper

zypper in mercurial

Cabe señalar que zypper wpestá obsoleto y puede que ya no esté disponible.

SailorCire
fuente
Esto no siempre es confiable. No sé por qué, pero los nombres de archivo como zypper search --provides [--match-exact] getenforceno devuelven resultados, mientras que zypper search --provides nslookupsí.
Lester
6

Para los googlers del futuro: al lado de la maravillosa solución de @SailorCire :-), también hay una herramienta llamada scout, que puede buscar en prácticamente todo, podemos encontrar rpm-s para un binario tal como podemos encontrar el frascos para una determinada clase de Java.

Por ejemplo, podemos usar el bincomando de scout para averiguar qué paquete proporciona el hgejecutable:

scout bin hg

El resultado de esta búsqueda es el mercurialpaquete:

 repository      | package   | path     | binary
-----------------+-----------+----------+--------
 zypp (repo-oss) | mercurial | /usr/bin | hg    
peterh - Restablece a Monica
fuente
¿Puede ser un poco más específico sobre la scoutherramienta? ¿Puedes dar su 'nombre completo o URL a su código'?
SebMa
@SebMa Fue descargable desde rpm, probablemente por zypper. Es posible que estuviera en un repositorio no estándar. No recuerdo muy bien :-( Ya no uso SuSE. Pero es muy posible que lo sea, luego lo comprobaré y explicaré lo que encontré. Es posible, que SuSE haya cambiado mucho desde entonces
peterh - Restablece a Mónica el
En mi dispositivo Jolla1 (SailFishOS), zypper wp scoutdiceNo matching items found.
SebMa
@SebMa Google para "herramienta de exploración rpm" Encontré este enlace en el acto, en el momento actual no puedo ayudar más. Probablemente necesitará instalarlo desde algún repositorio no estándar.
peterh - Restablece a Monica el
En el enlace que ha proporcionado, dice: "Scout es una interfaz para Tomboy notes o Gnote que usa DBus para comunicarse". No estoy seguro de que sea la herramienta que estamos buscando.
SebMa
1

Estoy usando Gecko Linux XFCE. Abrí Yast2 e instalé gnome-search-tool y gnome-shell-search-provider-nautilus . Funciona bien, al igual que el bagre.

Ross Vassilev
fuente