Sistemime kurulu tüm RPM paketlerinin listesini belirli bir depodan nasıl alabilirim (örneğin, "epel")?
Sistemime kurulu tüm RPM paketlerinin listesini belirli bir depodan nasıl alabilirim (örneğin, "epel")?
Yanıtlar:
yum list installed | grep @epel
dnf list installed | grep @epel
Önerildiği üzere RHEL6 itibariyle bu stackoverflow cevap ile bunu yapmanın daha kapsamlı bir yöntem var yumdb
:
yumdb search from_repo REPOID*
Repoid joker alır.
Çıktıyı kandırıp alacaksak, o zaman da güzel baskı efekti elde edebiliriz. İşte biri kullanıyorawk
yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'
egrep
Veya kullanarakgrep -e
yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'
Kullanılabilir tüm paketleri belirtilen bir depoda listelemek için şunları yapın:
repoquery -a --repoid=REPONAME
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
çünkü man sayfasına göre -q
seçenek rpmquery uyumluluğu içindir, hiçbir şey yapmaz.
-qa
aslında başarısız olur. Daha önce ben cevap güncelliyorum upvote :( kaldırarak o yansıtmak nedeniyle ben yorumunu upvote olamaz.
dnf repo-pkgs <repoid> list installed
Kullanımları Yukarıdaki komut DNF yüklenmiş paketleri listelemek için <repoid>
. Not repo-pkgs
sadece bir takma addır repository-packages
.
Gönderen man
sayfalarda:
man dnf | grep "repository-packages.*list.*installed" -A 1
Daha fazla okuma:
man dnf
Yum'un çıkması en açık yoldur:
yum list installed | grep @epel
Ancak, ek paket özelliklerini görüntüleyemezsiniz ve bir komut dosyasıyla ayrıştırmak zordur. Aracı repoquery
paketinden yum-utils
araçtır ancak varsayılan olarak yüklü değildir.
repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'
ve daha karmaşık bir örnek:
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
aynı bilgiyi yumdb search from_repo <repoid>
ancak farklı bir biçimde almak için kullanılabilir .
# 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
Örnek epel
çıktılar:
# 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
Vendor
Kurulu rpms başlıklarını kontrol edebilirsiniz .
Bu örnek, VideoLAN deposundaki tüm paketleri listeler :
rpm -q -a --qf "%{Name}:%{Vendor}\n" \
| grep -F ":VideoLAN Project (http://www.videolan.org)"
Açıkçası, Vendor
havuzunuzun başlığının farklı depolar arasında benzersiz olup olmadığını belirlemeniz gerekir .
Sadece eksik depoları bulmak isteyenler için:
yum list installed | awk '{print $3}' | sort | uniq
Bu, paketleri kurulu olan tüm depoları döndürmelidir.