Câu trả lời:
yum list installed | grep @epel
dnf list installed | grep @epel
Kể từ RHEL6, như được đề xuất trong câu trả lời stackoverflow này , có một phương pháp kỹ lưỡng hơn để làm điều này với yumdb
:
yumdb search from_repo REPOID*
Các repoid mất thẻ hoang dã.
Nếu chúng ta sẽ gian lận và dẫn đầu ra, thì chúng ta cũng có thể đạt được hiệu ứng in đẹp. Đây là một trong những sử dụngawk
yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'
Sử dụng egrep
hoặcgrep -e
yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'
Để liệt kê tất cả các gói có sẵn trong một kho lưu trữ được chỉ định, hãy làm:
repoquery -a --repoid=REPONAME
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
vì theo -q
tùy chọn trang man là để tương thích với vòng / phút, không làm gì cả.
-qa
thực sự thất bại. Tôi không thể đưa ra nhận xét do đã xóa upvote trước đó :( Tôi đang cập nhật câu trả lời để phản ánh điều đó.
Cắt đầu ra của yum là cách rõ ràng nhất:
yum list installed | grep @epel
Tuy nhiên, bạn không thể hiển thị các thuộc tính gói bổ sung và thật khó để phân tích cú pháp. Công cụ repoquery
từ gói yum-utils
là công cụ, nhưng nó không được cài đặt theo mặc định.
repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'
và một ví dụ phức tạp hơn:
repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{arch} %{epoch}:%-12{version} %-4{release}" | grep '^@epel'
yum repo-pkgs <repoid> list installed
có thể được sử dụng để truy xuất thông tin giống như yumdb search from_repo <repoid>
, nhưng ở một định dạng khác.
# yum help repo-pkgs
repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
Treat a repo. as a group of packages, so we can install/remove all of them
aliases: repo-packages, repository-pkgs, repository-packages
epel
Đầu ra mẫu :
# yumdb search from_repo epel
htop-2.2.0-1.el7.x86_64
from_repo = epel
supervisor-3.1.4-1.el7.noarch
from_repo = epel
# yum repo-pkgs epel list installed
Installed Packages
htop.x86_64 2.2.0-1.el7 @epel
supervisor.noarch 3.1.4-1.el7 @epel
Bạn có thể kiểm tra Vendor
tiêu đề của rpms đã cài đặt.
Ví dụ này liệt kê tất cả các gói từ kho lưu trữ Videolan :
rpm -q -a --qf "%{Name}:%{Vendor}\n" \
| grep -F ":VideoLAN Project (http://www.videolan.org)"
Rõ ràng, bạn cần xác định xem Vendor
tiêu đề của kho lưu trữ của bạn là duy nhất trong số các kho lưu trữ khác nhau.
Đối với những người chỉ muốn tìm kho lưu trữ bị thiếu:
yum list installed | awk '{print $3}' | sort | uniq
Điều này sẽ trả về tất cả các kho lưu trữ nơi bạn có các gói được cài đặt từ đó.