it-swarm.asia

Bir paketin hangi yum deposundan kurulduğunu nasıl öğrenebilirim?

Yum tarafından bir paket yükledikten sonra (birden fazla depo yapılandırılmış olarak), hangi depodan kurulduğunu nasıl bulabilirim?

Eğer ben koşarsam yum info package-name (veya yum list package-name), Yalnızca paketin "kurulu" olduğunu görebiliyorum.

159
lg.

Yum-utils yüklendiğinde, repoquery aradığınız bilgileri sağlayacaktır (burada 'epel' havuzdur).

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

Yum'un hangi sürümü?

Mevcut sürümde, yüklü paket mevcut olan en son sürümle aynı sürümdeyse, yüklendiği repo gösterilir.

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

Kullanılabilir daha yeni bir paket varsa, ayrı olarak gösterilecek ve yeni sürüm, bulunduğu repoyu gösterecektir.

45
theotherreceive

Geç gelmek için yol geliyor ama (en azından Fedora 15 üzerinde) benzer sorgular için yumdb kullanabilirsiniz:

yumdb info 'python*'

Ve aslında verilen repo (lar) dan paketleri listelemek için gereken:

yumdb search from_repo 'my-*-repo'
22
Martian

Her şey başarısız olursa yumdb'yi manuel olarak inceleyebilirsiniz. /var/lib/yum/yumdb İçinde bulunur ve kurulu her paket hakkında ayrıntılı bilgi içerir. Özellikle from_repo İle ilgileneceksiniz. Örneğin, bind-utils Paketi için:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

Yalnızca istediğiniz bilgileri almak için:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

Daha sonraki sürümler daha da fazla veri sağlayacaktır; örneğin EL 7'de paketin indirildiği aynanın aynası ve URL'si burada saklanır.

11
Michael Hampton
rpm -qi packagename

Size satıcı ve paketleyici söyleyecektir

6
Esmail

Repo epel'den nelerin yüklendiğini görmek için: (Centos 5.5 altında çalışmalı) Not, epel adında bir repo yoksa, yüklü olan her şeyi tükürecektir.

repoquery --repoid = epel -a | xargs yum listesi yüklü

5
David A.

Swoogan tarafından yanıtlanmıştır.
RedHat ve CentOS'ta

Sudo grep -ir PACKAGE_NAME /var/cache/yum/

Sonuçlar şöyle görünmelidir:

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

deposu_adı paketinizin bulunabileceği depodur ve muhtemelen listedeki ilk dosyadan kurulmuştur (yum repolist'e bakın)

4
iddqd

Paket yakın zamanda kurulmuşsa/var/cache/yum dizinine bakabilirsiniz.

Bu dizinde, her bir repo için bir dizin vardır ve bu pakette bir paketler dizini bulunur. Yani, şöyle bir şey yapardınız:

find /var/cache/yum -name [package-name]*

Ancak, /etc/yum.conf dosyanızda önbellek etkinleştirilmelidir:

cachedir=/var/cache/yum
keepcache=1

yum clean [packages|all] 'Un önbellek dizinini temizleyeceğini unutmayın.

Önbellek dizini boşsa, alternatif bir yol vardır. yum info [package] Tarafından okunan bilgiler /var/cache/yum/[repo Cialis/primary.xml.gz sitesinden geliyor.

Aşağıdakileri girerek dosyaya bakabilirsiniz:

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

Ancak, yum info [package] 'Un repo: "ifadesini görüntülemediği makinelerde,' theotherreceive 'ile belirtildiği gibi, bunun nedeni birincil.xml dosyasında olmamasıdır, bu nedenle bu bilgiyi almanın bir yolu olmayacaktır. . Bu nedenle, paket iki veya daha fazla birincil.xml dosyasındaysa, sisteminizde repo önceliğini belirlemeniz gerekir.

4
Swoogan

Herhangi bir ekstra araç takmadan, dışsal bilgileri açığa çıkaran veya çıkaran en basit ve en basit yaklaşım basitçe:

yum list installed [package name]

Üçüncü sütun, paketin kurulduğu deponun kimliğini sağlayacaktır.

Bu, grep kullanan orijinal soru üzerine bir yorumda belirtildi, ancak bu gerekli değil. Filtrelemek için paket adını doğrudan yum öğesine iletebilirsiniz.

1
Scott Buchanan

Ayrıntılı yumurtayı "yum info" ya ekleyebilirsiniz:

yum info -v <package_name>

Kurulum deposu "Repo'dan" çıktı altında olacaktır.

1
smw

Bu bilgi herhangi bir yerde tutuluyor mu? Paket bu bilgilere sahip değildir ve yum paketi bulduktan sonra umursamaz. Muhtemelen paketi hangi depoların olduğunu ve sonra hangisinin önceliğe sahip olduğunu belirleyerek bir araya getirebilirsiniz.

1
Alex

Harika bir çözüm değil, ancak mevcut yum listesinin her paketin en güncel sürümünün nerede olduğunu göstereceğini buldum, örneğin:

yum listesi mevcut | grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10 güncellemeleri
gstreamer.i386 0.10.21-2.fc10 Fedora
gstreamer-devel.i386 0.10.21-2.fc10 Fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 Fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 rpmfüzyon içermez
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfüzyon içermez

Böylece paketinizde bulunan bir yum listesi yapabilir, yüklü yum listesini kullanarak yüklü sürümünüzü karşılaştırabilir ve sürümler eşleşirse hangi repodan geldiğini iyi bir şekilde anlayabilirsiniz.

1
gareth_bowles

Yukarıdaki komutların hiçbiri benim için çalışmadı. Yapmam gereken buydu.

yum provides "*compat-libstdc*"

İyi bir referans burada.

https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf

1
cokedude

Bu yüzden biraz eski bir soru olduğunu biliyorum - ama aradığım şey için google arama geliyor.

Kullanılan depoların benzersiz bir listesini almak için bir yöntem de vardır:

# repoquery -ai | grep 'Repository  : ' | sort | uniq

Bu paketlerin kurulu olduğu depoları listeler.

1
Steven Haigh