2011-01-05 6 views
57

Я хочу перечислить все пакеты, которые я установил в системе из определенного репо с помощью yum. Обычно для этого я использую yum list installed | grep "something". Но теперь я столкнулся с проблемой. Репо, которое меня интересует, не имеет для меня что-то, что мне нужно. Пакеты с этого репо не имеют каких-либо отличительных характеристик. Как их перечислить?Как перечислить установленные пакеты из заданного репо с помощью yum

Я просмотрел страницы руководства yum, но ничего не нашел. Интересно, есть ли другие команды, которые я мог бы использовать.

+0

как насчет 'rpm -qa'? –

+5

это должно быть перенесено в Unix и Linux, это достойный вопрос. – fedvasu

+1

У Unix Exchange уже есть [вопрос] (http://unix.stackexchange.com/questions/22560/list-all-rpm-packages-installed-from-repo-x), что очень похоже, если не то же самое. @fedvasu, я согласен; просто неправильный форум, но хороший вопрос, хотя и с простым ответом: D –

ответ

35

В новых версиях yum эта информация хранится в «yumdb», когда пакет установлен. Это единственный 100% точный способ, чтобы получить информацию, и вы можете использовать:

yumdb search from_repo repoid 

(или repoquery и Grep - не Grep ня выхода). Однако команда «Find-репо-оф-установки» была часть ЯМ-утилиты на некоторое время, который сделал лучшее предположение без этой информации:

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

Как сказал флойд, много сделок РЕПО. включите в свой релиз уникальный тег «dist», и вы можете посмотреть на это ... однако из того, что вы сказали, я думаю, это не так для вас?

+2

Выполнение некоторых исследований, похоже, что yumdb является новым в RHEL 6 (и CentOS 6) - поэтому он недоступен в более старых версиях. –

+0

Благодарим вас за это; Я * знал, что нужно было бы сделать rpm/yum, чтобы сделать это сейчас: D –

+2

Perfect. Только одно, чтобы получить yumdb на Cent OS 6, установите его с помощью yum install yum-utils –

62

Попробуйте

yum list installed | grep reponame

На одном из моих серверов:

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 

Он работает.

+6

К сожалению, это работает только для репозиториев, которые в конце делают что-то вроде «remi». rpmforge работает (они используют «rf»), но atrpms ничего не ставят в конце:/ –

+3

Кроме того, перечитывая вопрос, он говорит, что обычно делает это, но в этом случае не может. –

+0

Другая проблема: если имена пакетов/строки версий слишком велики (например, Solr от Cloudera), то часть «@ origin-repo» переходит в новую строку, в результате получается строка «[пустое место] @ origin- репо». – IBBoard