2011-01-05 12 views
57

Quiero enumerar todos los paquetes que he instalado en un sistema de un repositorio determinado utilizando yum. Por lo general, para hacer esto, uso yum list installed | grep "something". Pero ahora estoy frente a un problema. El repositorio en el que estoy interesado no tiene ese "algo" para que grep. Los paquetes de ese repos no tienen ninguna característica distintiva. ¿Cómo los menciono?Cómo enumerar los paquetes instalados de un repositorio determinado usando yum

Revisé las páginas de yum man pero no encontré nada. Me pregunto si hay otros comandos que podría usar.

+0

¿qué pasa con 'rpm -qa'? –

+5

esto se debe migrar a Unix y Linux, esta es una pregunta decente. – fedvasu

+1

Unix Exchange ya tiene [una pregunta] (http://unix.stackexchange.com/questions/22560/list-all-rpm-packages-installed-from-repo-x) que es muy similar, si no es lo mismo. @fedvasu, estoy de acuerdo; foro equivocado, pero buena pregunta, aunque con una respuesta simple: D –

Respuesta

35

En las versiones más nuevas de yum, esta información se almacena en el "yumdb" cuando se instala el paquete. Esta es la única manera fiable al 100% para obtener la información, y se puede utilizar:

yumdb search from_repo repoid 

(o repoquery y grep - no grep salida mmm). Sin embargo el comando "find-repos-de-instalar" era parte de yum-utils por un tiempo, que hizo la mejor conjetura sin esa información:

http://james.fedorapeople.org/yum/commands/find-repos-of-install.py

Como dijo Floyd, una gran cantidad de pases. incluir una etiqueta "dist" única en su lanzamiento, y puede buscar eso ... sin embargo, por lo que dijo, ¿no es así para usted?

+2

Investigando un poco, parece que yumdb es nuevo en RHEL 6 (y CentOS 6), por lo que no está disponible en versiones anteriores. –

+0

Gracias por esto; Sabía * que tendría que haber una forma de hacer esto por rpm/ahora: D –

+2

Perfecto. Solo una cosa, para obtener yumdb en Cent OS 6, instálelo con yum install yum-utils –

62

Trate

yum list installed | grep reponame

En uno de mis servidores:

yum list installed | grep remi 
ImageMagick2.x86_64      6.6.5.10-1.el5.remi   installed 
memcache.x86_64       1.4.5-2.el5.remi    installed 
mysql.x86_64        5.1.54-1.el5.remi   installed 
mysql-devel.x86_64      5.1.54-1.el5.remi   installed 
mysql-libs.x86_64       5.1.54-1.el5.remi   installed 
mysql-server.x86_64      5.1.54-1.el5.remi   installed 
mysqlclient15.x86_64      5.0.67-1.el5.remi   installed 
php.x86_64        5.3.5-1.el5.remi    installed 
php-cli.x86_64       5.3.5-1.el5.remi    installed 
php-common.x86_64       5.3.5-1.el5.remi    installed 
php-domxml-php4-php5.noarch    1.21.2-1.el5.remi   installed 
php-fpm.x86_64       5.3.5-1.el5.remi    installed 
php-gd.x86_64        5.3.5-1.el5.remi    installed 
php-mbstring.x86_64      5.3.5-1.el5.remi    installed 
php-mcrypt.x86_64       5.3.5-1.el5.remi    installed 
php-mysql.x86_64       5.3.5-1.el5.remi    installed 
php-pdo.x86_64       5.3.5-1.el5.remi    installed 
php-pear.noarch       1:1.9.1-6.el5.remi   installed 
php-pecl-apc.x86_64      3.1.6-1.el5.remi    installed 
php-pecl-imagick.x86_64     3.0.1-1.el5.remi.1   installed 
php-pecl-memcache.x86_64     3.0.5-1.el5.remi    installed 
php-pecl-xdebug.x86_64     2.1.0-1.el5.remi    installed 
php-soap.x86_64       5.3.5-1.el5.remi    installed 
php-xml.x86_64       5.3.5-1.el5.remi    installed 
remi-release.noarch      5-8.el5.remi     installed 

Funciona.

+6

Desafortunadamente, esto solo funciona para los repos que ponen algo así como "remi" al final. rpmforge funciona (usan "rf") pero atrpms no pone nada al final:/ –

+3

Además, volviendo a leer la pregunta, dice que normalmente hace eso, pero no puede en este caso. –

+0

Otro problema: si los nombres de los paquetes/cadenas de versión son demasiado largos (p. Ej. Solr de Cloudera), la parte "@ origin-repo" se desplaza a una nueva línea, lo que da como resultado una "línea [espacio en blanco] @ origen- repo ". – IBBoard

Cuestiones relacionadas