2011-01-05 2 views
57

Je veux lister tous les paquets que j'ai installés sur un système à partir d'un repo donné en utilisant yum. Habituellement, pour ce faire, j'utilise yum list installed | grep "something". Mais maintenant je suis confronté à un problème. Le repo qui m'intéresse n'a pas ce "quelque chose" pour moi de grep. Les paquets de ce repo n'ont pas de caractéristiques distinctives. Comment les lister? J'ai regardé à travers les pages man de yum mais je n'ai rien trouvé. Je me demande s'il y a d'autres commandes que je pourrais utiliser.Comment lister les paquets installés à partir d'un repo donné en utilisant yum

+0

qu'en est-il de 'rpm -qa'? –

+5

cela devrait être migré vers Unix et Linux, c'est une question décente. – fedvasu

+1

Unix Exchange a déjà [une question] (http://unix.stackexchange.com/questions/22560/list-all-rpm-packages-installed-from-repo-x) qui est très similaire, sinon la même chose. @fedvasu, je suis d'accord; juste mauvais forum, mais bonne question, mais avec une réponse simple: D –

Répondre

35

Sur les nouvelles versions de yum, cette information est stockée dans le "yumdb" lorsque le paquet est installé. Ceci est le seul 100% de façon précise pour obtenir l'information, et vous pouvez utiliser:

yumdb search from_repo repoid 

(ou repoquery et grep - ne grep sortie yum). Cependant la commande "find-repo-de-installer" faisait partie de Yum-utils pendant un certain temps qui a fait la meilleure estimation sans cette information:

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

Comme l'a dit floyd, beaucoup de prises en pension. inclure une étiquette «dist» unique dans leur version, et vous pouvez rechercher cela ... Cependant, d'après ce que vous avez dit, je suppose que ce n'est pas le cas pour vous?

+2

En faisant quelques recherches, il semble que yumdb soit nouveau dans RHEL 6 (et CentOS 6) - il n'est donc pas disponible dans les anciennes versions. –

+0

Merci pour cela; Je * savais * qu'il devrait y avoir un moyen de faire ceci: D –

+2

Parfait. Juste une chose, pour obtenir yumdb sur Cent OS 6 l'installer avec yum install yum-utils –

62

Essayez

yum list installed | grep reponame

Sur un de mes serveurs:

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 

Il fonctionne.

+6

Malheureusement, cela ne fonctionne que pour les repos qui mettent quelque chose comme "remi" à la fin. rpmforge fonctionne (ils utilisent "rf") mais les atrpms ne mettent rien à la fin:/ –

+3

Aussi, en relisant la question, il dit qu'il le fait normalement, mais ne peut pas dans ce cas. –

+0

Un autre problème: si les noms de paquetages/chaînes de version sont trop longs (par exemple Solr de Cloudera) alors la partie "@ origin-repo" est repoussée vers une nouvelle ligne, résultant en une ligne "[espace vide] @ origine repo ". – IBBoard

Questions connexes