Soru Bir paketin hangi paketinden kurulduğunu nasıl öğrenebilirim?


Yum (paketlenmiş çoklu depolarla) paketini kurduktan sonra hangi depodan kurulduğunu nasıl bulabilirim?

Eğer koşarsam yum info package-name (veya yum list package-name), Sadece paketin "yüklü" olduğunu görebiliyorum.


138
2017-09-03 15:15


Menşei


Harika soru! Yum-utils'i kurdum ve repoquery denilen araçlardan birini denedim, ama şans yok. - Sean Staats
Ayrıca bakınız serverfault.com/questions/90409/...:) - warren
@warren bağlantınız yararlı değildir çünkü bağlantınız "ne repo depolanan bir rpm" sorusuyla ilgilidir. Ancak bu soru "ne repo ne kadar bir" rpm "den" sorusunu sorar. farklı sorular. - Trevor Boyd Smith
eğer alışkınsan rpm -qa|grep NAME o zaman yapabilirsin yap yum list installed|grep NAME rpm hangi repo olduğunu bulmak için. - Trevor Boyd Smith
@TrevorBoydSmith - 7 yıl önce, yakındı. Bugün, bu yine benzer. Asla öyle olduğunu söylemedim aynı. Sadece ilgili oldu. - warren


Cevaplar:


Yum-utils yüklü, repoquery aradığınız bilgiyi sağlayacaktır (burada 'epel' deposu olmak üzere).

└─[$]> 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.

77
2018-06-21 19:16



Repoquery doğru çalışmıyor gibi görünmüyor, yum info package_nameBu, depoları yum ile aynı sırada sorgulamaz. - Mike Miller
Burada birkaç sunucuda aynı. yum info package_name görünüşte repoquery'den daha fazla sonuç döndürür. Bu yüzden yığın değişimleri oylamada kilitlenmemelidir. - reflexiv
Xiong Chiamiov'un cevabının doğru olmadığını buldum. repoquery -i $pkg hangi repo verir $pkg kullanılabilir, hangi repo değil $pkg kuruldu. Bu komutu yaptım ve rpm -qi $pkg ve farklı sürüm numaraları var. rpm önceki bir sürüm numarasıyla sonuçlandı repoquery.
Yerel kopyanızın güncel olmaması veya yum için ek komutlarla kurulması (ör. --use-mirror). Bence mümkün değil her zaman Doğru cevabı al. - Xiong Chiamiov


Yum hangi versiyonu?

Mevcut sürümde, kurulu paket mevcut olan en yeni sürümle aynı ise, kurulduğu 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

Eğer daha yeni bir paket mevcutsa, yeni versiyonun mevcut olduğu repo'yu gösterecek şekilde ayrı ayrı gösterilecektir.


38
2017-09-03 16:25



CentOs 5.3 üzerinde 3.2.19 kullanıyorum ve "Repo'dan" satırı yok. - lg.
Evet ... 3.2.21'de test ediyordum, ki bu bilgi hiçbir yerde yoktu. Bunu 3.2.23 olan kutumda yaptım, işe yaradı. - Alex
Şimdi bu en iyi çözümdür, ancak RHEL / Centos 5.3 için geçerli değildir. Bu çözümü kabul ediyorum ancak RHEL / Centos 5.3 için de geçerli olacaksa başka bir cevap seçmeye hazırım. - lg.
Bu, CentOS 5.5'te de yok. - Mike Miller
"Temsil" ten centos'ta bile müsait değil 5.8 - sepehr


Geç giden yoldan (ama en azından Fedora 15) biri, benzer sorgularda yumdb kullanabilir:

yumdb info 'python*'

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

yumdb search from_repo 'my-*-repo'

20
2017-10-26 09:01



Ayrıca Fedora 14'te de çalışıyor - lg.
RHEL 6.2 üzerinde çalışır - pixelbeat


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

# 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

İstediğiniz bilgileri almak için:

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

Daha sonraki versiyonlar daha da fazla veri sağlayacaktır; örneğin EL 7'de paketin indirildiği tam ayna ve URL burada saklanır.


8
2018-05-25 04:19



+1. Ama böyle bir şey yapmak daha da iyidir: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; doneYukarıdaki örnekte geri dönen: updates - çok daha okunaklı! - Greg Dubicki
@GregDubicki Komutun amacı, neler olup bittiğinin bağlamını ve şeylerin nasıl saklandığını göstermekti. Görünüşe göre böyle yapmadı: Gerek yok grep Burada bir şey var, hatta döngüyü bile bırakabilirsiniz. Çok basit cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo tüm ihtiyacın olan. - Michael Hampton♦


rpm -qi packagename

Size satıcı ve paketleyiciyi söyleyeceğim


6
2018-02-09 14:48





Paket yakın zamanda kurulduysa, / var / cache / yum dosyasına bakabilirsiniz.

Bu dizinde, her bir repo için bir dizin ve bir paket dizini vardır. Yani, şöyle bir şey yaparsın:

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

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

cachedir=/var/cache/yum
keepcache=1

Unutmayın ki yum clean [packages|all] önbellek dizinini temizler.

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

Girerek dosyaya göz atabilirsiniz:

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

Ancak, makinelerde nerede yum info [package] 'theotherreceive' tarafından belirtildiği gibi, "repo:" dan görüntülemez, bunun nedeni, main.xml dosyasında olmamasıdır, bu nedenle bu bilgileri almanın hiçbir yolu yoktur. Bu nedenle, paket iki veya daha fazla birincil.xml dosyasındaysa, sisteminizde repo önceliğini belirlemeniz gerekir.


4
2017-09-03 16:36



Bu çözüm belki bir seçenek (oy veriyorum), ama kesin bir cevap arıyorum. - lg.


Repo epel'den yüklü olanları görmek için: (Centos 5.5 altında çalışmalısınız), eğer epel adında repo'unuz yoksa, kurulu her şeyi tükürecektir.

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


4
2018-04-07 21:20



Bu, depoda güncelleştirilmiş bir paket olmadığı sürece çalışır. Bu yüzden kullanmadan önce yum güncellemeyi çalıştırmanız gerekiyor. - codewaggle


Dayanarak ve cevap Swoogan
RedHat ve CentOS'ta bir tane yapabilir

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

Sonuçlar gibi bir şey görünmeli

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

Nerede repository_name  paketinizin bulunabileceği bir depodır ve muhtemelen bir listeden ilk listeden yüklenmiştir (bkz. yum repolist).


3
2018-05-30 00:19