2011-01-05 34 views
57

Tôi muốn liệt kê tất cả các gói mà tôi đã cài đặt trên hệ thống từ một kho lưu trữ đã cho bằng yum. Thông thường để làm điều này tôi sử dụng yum list installed | grep "something". Nhưng bây giờ tôi phải đối mặt với một vấn đề. Repo tôi quan tâm không có "thứ gì đó" cho tôi để grep. Các gói từ repo đó không có bất kỳ đặc điểm riêng biệt nào. Làm thế nào để tôi liệt kê chúng?Cách liệt kê các gói đã cài đặt từ một kho lưu trữ đã cho bằng cách sử dụng yum

Tôi đã xem qua các trang man yum nhưng không tìm thấy gì cả. Tôi tự hỏi nếu có các lệnh khác tôi có thể sử dụng.

+0

điều gì về 'rpm -qa'? –

+5

này nên được di chuyển sang Unix và Linux, đây là một câu hỏi khá. – fedvasu

+1

Unix Exchange đã có [một câu hỏi] (http://unix.stackexchange.com/questions/22560/list-all-rpm-packages-installed-from-repo-x) rất giống nhau, nếu không giống nhau. @fedvasu, tôi đồng ý; chỉ sai diễn đàn, nhưng câu hỏi tốt, mặc dù với một câu trả lời đơn giản: D –

Trả lời

35

Trên phiên bản mới hơn của yum, thông tin này được lưu trữ trong "yumdb" khi gói được cài đặt. Đây là cách chính xác 100% duy nhất để nhận thông tin và bạn có thể sử dụng:

yumdb search from_repo repoid 

(hoặc repoquery và grep - không grep yum output). Tuy nhiên lệnh "tìm-Repos-of-cài đặt" là một phần của yum-utils trong một thời gian mà đã đoán tốt nhất không có thông tin rằng:

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

Như floyd nói, rất nhiều hợp đồng mua lại. bao gồm một thẻ "dist" duy nhất trong bản phát hành của họ và bạn có thể tìm kiếm từ khóa đó ... tuy nhiên từ những gì bạn đã nói, tôi đoán đó không phải là trường hợp của bạn?

+2

Thực hiện một số nghiên cứu, có vẻ yumdb mới trong RHEL 6 (và CentOS 6) - vì vậy nó không có sẵn trong các phiên bản cũ hơn. –

+0

Cảm ơn bạn vì điều này; Tôi * biết * có phải là một cách rpm/yum để làm điều này bây giờ: D –

+2

Hoàn hảo. Chỉ cần một điều, để có được yumdb trên Cent OS 6 cài đặt nó với yum install yum-utils –

62

Hãy thử

yum list installed | grep reponame

Trên một trong những máy chủ của tôi:

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 

Nó hoạt động.

+6

Thật không may này chỉ hoạt động cho repos mà đặt một cái gì đó như "remi" vào cuối. rpmforge làm việc (họ sử dụng "rf") nhưng atrpms không đặt bất cứ điều gì vào cuối:/ –

+3

Ngoài ra, đọc lại câu hỏi, ông nói rằng ông thường làm điều đó, nhưng không thể trong trường hợp này. –

+0

Một vấn đề khác: Nếu các tên gói/chuỗi phiên bản quá dài (ví dụ: Solr từ Cloudera) thì phần "@ origin-repo" bị đẩy xuống một dòng mới, dẫn đến một dòng là "[khoảng trống] @ origin- repo ". – IBBoard

Các vấn đề liên quan