“X” deposundan kurulan tüm RPM paketlerini listele


44

Sistemime kurulu tüm RPM paketlerinin listesini belirli bir depodan nasıl alabilirim (örneğin, "epel")?

Yanıtlar:


45

CentOS / RHEL / Fedora 22 veya üstü

yum list installed | grep @epel

Fedora 23 veya üstü

dnf list installed | grep @epel

8
Bu işe yaramayacak. Yum, çok uzarlarsa kırılacak boruya hat verecektir. Grep'in girişi, paket başına çoğunlukla bir satırdır, ancak iki satır olabilir. Yum "whizbanger.x86_64 ___ 3.8.4-2.el6 _______________ @epel" ifadesini geçebilir. (Alt çizgileri boşluk olarak hayal edin.) "@Epel", giriş aralığının gördüğü bir sonraki satırdadır. Bu nedenle grep, bu satırı "@ epel" dışında bir şey olmadan çıkarır, ancak paket adının bir önceki satırından değil.
Todd Walton

Bugzilla.redhat.com/show_bug.cgi?id=1525645 düzeltilene kadar bu komutları root olarak çalıştırmanız gerekebilir .
proski,

Eğer depolardan biri sorun yaşarsa yum komutu çalışmıyor gibi görünüyor. Sorunlu depoyu devre dışı bırakmak isteyip istemediğimi görmek için bu listeye ihtiyacım vardı.
Jayen

@Todd Watson biliyorum, bir hack ama peki "export COLUMNS = 999 yum ..."
Massimo

Bu işe yarıyor mu @Massimo? Bu güzel bir geçici çözüm olurdu. Ayrıca bu Unix StackExchange
Todd Walton

17

Ö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.

Oldukça-print

Çı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 }'

egrepVeya kullanarakgrep -e

yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'

list_ALL_AVAILABLE_from_repo

Kullanılabilir tüm paketleri belirtilen bir depoda listelemek için şunları yapın:

repoquery -a --repoid=REPONAME

Sadece bir not: Belirtilen bir repoquery -qa --repoid=REPONAME
depodaki

2
Bu da harika bir cevap. Çıktı kabul edilen cevaptan daha uzun, ancak daha hoş bir şekilde biçimlendirilmiş.
Routhinator

Basitleştirilebilir repoquery -a --repoid=REPONAMEçünkü man sayfasına göre -qseçenek rpmquery uyumluluğu içindir, hiçbir şey yapmaz.
Rockallite,

@Rockallite doğru; dnf için -qaaslında başarısız olur. Daha önce ben cevap güncelliyorum upvote :( kaldırarak o yansıtmak nedeniyle ben yorumunu upvote olamaz.
ILMostro_7

11
dnf repo-pkgs <repoid> list installed

notlar

Kullanımları Yukarıdaki komut DNF yüklenmiş paketleri listelemek için <repoid>. Not repo-pkgssadece bir takma addır repository-packages.

Gönderen mansayfalarda:

man dnf | grep "repository-packages.*list.*installed" -A 1

Daha fazla okuma:

man dnf

3

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ı repoquerypaketinden yum-utilsaraç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'

2

RHEL Sunucu 7.5 (Maipo)

yum repo-pkgs <repoid> list installedaynı 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

1

VendorKurulu 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ı, Vendorhavuzunuzun başlığının farklı depolar arasında benzersiz olup olmadığını belirlemeniz gerekir .


3
Satıcı ile repolar arasında bire bir eşleme yoktur ve bazı durumlarda Satıcı dizesi boştur.
Lorin Hochstein,

1

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.