Vraag Hoe weet ik uit welke yum-repository een pakket is geïnstalleerd?


Nadat ik een pakket heb geïnstalleerd op basis van yum (waarbij meerdere repositories zijn geconfigureerd), hoe kom ik erachter vanuit welke repository het is geïnstalleerd?

Als ik ren yum info package-name (of yum list package-name), Kan ik alleen zien dat het pakket is "geïnstalleerd".


134
2017-09-03 15:15


oorsprong


Grote vraag! Ik installeerde yum-utils en probeerde het zijn utils genaamd repoquery, maar geen geluk. - Sean Staats
zie ook serverfault.com/questions/90409/...:) - warren
@warren je link is niet handig omdat je link een vraag is over "welke repo is een rpm opgeslagen in" maar deze vraag "vraagt ​​welke repo een INSTALLED rpm van is". verschillende vragen. - Trevor Boyd Smith
als je gewend bent om te doen rpm -qa|grep NAME dan kunt u do yum list installed|grep NAME om te achterhalen uit welke repo de rpm is. - Trevor Boyd Smith
@TrevorBoydSmith - 7 jaar geleden was het in de buurt. Vandaag is het nog steeds vergelijkbaar. Nooit gezegd dat het de dezelfde. Alleen dat het gerelateerd was. - warren


antwoorden:


Met yum-utils geïnstalleerd, levert repoquery de informatie die je zoekt (hier is 'epel' de repository).

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

75
2018-06-21 19:16



repoquery lijkt niet goed te werken, ik krijg dan verschillende pakketversies yum info package_name, het lijkt niet naar de repositories te vragen in dezelfde volgorde als yum. - Mike Miller
Hetzelfde hier op een paar servers. yum info package_name retourneert blijkbaar meer resultaten dan repoquery. Dit is de reden waarom stack exchange geen stemmen mag blokkeren. - reflexiv
Ik vond het antwoord van Xiong Chiamiov niet correct. repoquery -i $pkg geeft repo waaruit a $pkg is beschikbaar, niet de repo waaruit de $pkg was geïnstalleerd. Ik deed dat commando en rpm -qi $pkg en kreeg verschillende versienummers. rpm resulteerde in een eerder versienummer dan dat van repoquery.
Het is mogelijk dat uw lokale exemplaar verouderd is, of dat het is geïnstalleerd met extra opdrachten voor yum (bijv. --use-mirror). Ik denk niet dat het mogelijk is altijd krijg het juiste antwoord. - Xiong Chiamiov


Welke versie van yum?

Bij de huidige versie als het geïnstalleerde pakket dezelfde versie is als de meest recente versie, wordt de repository waarvan deze is geïnstalleerd, weergegeven.

$ 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

Als er een nieuwer pakket beschikbaar is, wordt dit afzonderlijk getoond, met de nieuwe versie die de repo toont waarvan het beschikbaar is.


37
2017-09-03 16:25



Ik gebruik yum 3.2.19 op CentOS 5.3 en de rij "Van repo" bestaat niet. - lg.
Yep ... ik testte het op 3.2.21, die die info nergens heeft. Toen ik het op mijn doos deed die 3.2.23 heeft, werkte het. - Alex
Dit is nu de beste oplossing, maar niet van toepassing op RHEL / Centos 5.3. Ik accepteer deze oplossing, maar ik ben klaar om een ​​ander antwoord te kiezen als dit ook van toepassing is op RHEL / Centos 5.3. - lg.
Dit is ook een poging in CentOS 5.5. - Mike Miller
"Van rep" is niet beschikbaar, zelfs in centen 5.8 - sepehr


Komt veel te laat, maar (in ieder geval op Fedora 15) kan je yumdb gebruiken voor vergelijkbare zoekopdrachten:

yumdb info 'python*'

En wat ik eigenlijk nodig had om pakketten van gegeven repo (s) te vermelden:

yumdb search from_repo 'my-*-repo'

18
2017-10-26 09:01



Het werkt ook op Fedora 14 - lg.
werkt op RHEL 6.2 - pixelbeat


Als al het andere faalt, kunt u de yumdb handmatig controleren. Het bevindt zich in /var/lib/yum/yumdb en bevat gedetailleerde informatie over elk geïnstalleerd pakket. Je zult vooral geïnteresseerd zijn in from_repo. Bijvoorbeeld voor de bind-utils pakket:

# 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

Om precies die informatie te krijgen die u zoekt:

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

Latere versies zullen nog meer gegevens opleveren; bijvoorbeeld in EL 7 wordt hier de exacte spiegel en URL opgeslagen waaruit het pakket is gedownload.


8
2018-05-25 04:19



1. Maar het is zelfs beter om iets te doen als: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done, die in het bovenstaande voorbeeld retourneert: updates - veel leesbaarder! - Greg Dubicki
@GregDubicki Het doel van het commando was om meer te laten zien van de context van wat er gaande is en hoe dingen worden opgeslagen. Het bleek dat blijkbaar niet te doen: dat is niet nodig grep alles hier, en je kunt zelfs de lus laten vallen. Een heel simpele cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo is alles wat je nodig hebt. - Michael Hampton♦


rpm -qi packagename

Zal je de verkoper en de verpakker vertellen


6
2018-02-09 14:48





Als het pakket onlangs is geïnstalleerd, kunt u kijken in / var / cache / yum.

Binnen die directory is er een map voor elke repo en daarin een map met pakketten. Dus je zou iets als doen:

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

De cache moet echter zijn ingeschakeld in uw /etc/yum.conf-bestand:

cachedir=/var/cache/yum
keepcache=1

Merk op dat a yum clean [packages|all] zal de cachedirectory wissen.

Als de cachemap leeg is, is er een alternatieve manier. De informatie die wordt gelezen door yum info [package] komt van /var/cache/yum/[repo]/primary.xml.gz

U kunt door het bestand bladeren door het volgende in te voeren:

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

Echter, op machines waar yum info [package] "Van repo:" niet weergeeft, zoals aangegeven door 'theotherontceive', omdat het zich niet in het bestand primary.xml bevindt, dus er is geen manier om die informatie op te halen. Als het pakket zich in twee of meer primaire.xml-bestanden bevindt, moet u daarom de repoprioriteit op uw systeem bepalen.


4
2017-09-03 16:36



Deze oplossing is misschien een optie (ik stem het), maar ik ben op zoek naar een definitief antwoord. - lg.


Om te zien wat er is geïnstalleerd vanuit repo epel: (zou moeten werken onder Centos 5.5), als je geen repo genaamd epel hebt, spuugt het alles wat is geïnstalleerd.

repoquery - repoid = epel - a | xargs yum lijst geïnstalleerd


4
2018-04-07 21:20



Dit lijkt te werken zolang er geen bijgewerkt pakket in de repository is. U moet dus de yum-update uitvoeren voordat u hem gebruikt. - codewaggle


Gebaseerd op en antwoord door Swoogan
Op RedHat en CentOS kan men doen

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

De resultaten moeten er ongeveer zo uitzien

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

Waar repository_name  is de repository waar je pakket kan worden gevonden, en het is waarschijnlijk geïnstalleerd vanaf de eerste in een lijst (zie yum repolist)


3
2018-05-30 00:19