Vraag Hoe kom ik erachter welke repository een pakket bevat?


Is er een methode of een opdracht die kan vertellen uit welke repository een pakket komt?


115
2017-10-20 20:43


oorsprong


Dit is dubbelzinnig. Bedoelt u: welke momenteel ingeschakelde opslagplaatsen bieden een pakket met de opgegeven naam, of: welke repository werd gebruikt om het pakket met die naam te installeren die momenteel is geïnstalleerd? (Beide zijn nuttig, ik ben op zoek naar de laatste, niet de eerste.) - Reinier Post


antwoorden:


Benodigde commando's:

  • dpkg -s <package> - laat je toe vind de versie daarvan je hebt geïnstalleerd. (bron)
  • apt-cache showpkg <package> - zullen toon een lijst met versies van de pakket beschikbaar. Voor elke versie, de bron van het pakket, in de vorm van een indexbestandsnaam, zal zijn gegeven.

Als u de bron van het pakket wilt vinden dat momenteel is geïnstalleerd, hebt u de uitvoer nodig van dpkg -s <package>. Anders kunt u gewoon kijken naar de nieuwste versie output door apt-cache showpkg <package>.

Voorbeeld:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

Vanaf het eerste commando kan ik zien dat Liferea versie 1.6.2-1ubuntu6 is geïnstalleerd. Van de tweede opdracht kan ik zien dat die versie wordt vermeld in /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

Zonder al te veel moeite, kan ik afleiden dat de bronregel bevat archive.ubuntu.com, ubuntu, lucid, en main.

En, ja hoor, mijn /etc/apt/sources.list bevat de volgende regel.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

85
2017-10-20 21:49



mac, bedankt voor je gedetailleerde antwoord! Helaas helpt het niet bij mijn eerste probleem met een onbeantwoorde afhankelijkheidsprobleem :-( Ik probeer libqt4-opengl te installeren en er staat: De volgende pakketten hebben niet-afhankelijke afhankelijkheden: libqt4-opengl: Afhankelijk van: libqtcore4 (= 4: 4.6.2-0ubuntu5.1) maar 4: 4.7.0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 moet worden geïnstalleerd Afhankelijk van: libqtgui4 (= 4: 4.6.2-0ubuntu5.1) maar 4: 4.7. 0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 moet worden geïnstalleerd - dfme
Het is moeilijk om precies te zien wat het probleem is. U zou een nieuwe vraag moeten openen, zodat u alle details kunt geven. Als u dat doet, laat dan een link achter in een opmerking. :-) - mac9416
apt-cache policy <package name> (van: superuser.com/a/236605/37279) - franzlorenzon
Laat apt-cache {showpkg, policy} eigenlijk zien waar een geïnstalleerd pakket is is geïnstalleerd vanaf, of juist waar het zou worden geïnstalleerd vanaf op het moment dat het wordt opgevraagd? - Croad Langshan
Het laatste. Als ik over het algemeen Ubuntu gebruik trusty pakketbronnen, voeg dan tijdelijk toe utopic aan mijn sources.list om versie 1.20ubuntu3 van te installeren init-system-helpers en verwijder de repo opnieuw van mijn sources.list, apt-cache showpkg init-system-helpers zal gewoon liegen over de originele pakketlijst en apt-cache policy init-system-helpers zal alleen het voor de hand liggende verklaren. - blubberdiblub


Gebruik de volgende opdracht. Het heeft een betere output:

apt-cache policy <Package Name>

Voor Ubuntu 16.04 en later is er een kortere manier om dat te doen:

apt policy <Package Name>

84
2017-09-20 06:21



Dit is het juiste antwoord! De opdrachten in het antwoord van mac9416 hebben vervelend interpreteren + raden op basis van hun uitvoer. Voor meer informatie over apt-cache policy zie ook superuser.com/a/236605/61370 - pabouk
apt-cache policy is goed, maar soms moet je dat wel apt-cache showpkg om MD5-sommen uit pakket te vergelijken. Zie ook debsums --changed - gavenkoa
deze policy optie is het handigst om mee te vergelijken sources.list - infinite-etcetera
Dit zou het geaccepteerde antwoord moeten zijn! @pabouk heeft gelijk. Dit antwoord is relevanter voor de vraag dan de momenteel geaccepteerde vraag. - HEXcube
Zoals @ pablo-bianchi erop wees zijn antwoord, een nog eenvoudiger apt policy <package-name> kan vanaf 16.04LTS worden gebruikt. Zodra 14.04LTS in 2018 EOL wordt, kan dit antwoord worden bewerkt om de nieuwere opdracht te gebruiken. - HEXcube


Helaas wordt deze informatie niet geregistreerd tijdens de installatie van het pakket. Je kunt een goede inschatting maken als de repository nog steeds in de bronlijst staat en de repository nog steeds het pakket heeft:

grep -l PKG /var/lib/apt/lists/*

Zelfs synaptic kan niet zeggen of u de repository uitschakelt en bijwerkt.


6
2017-10-20 21:37





sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

bron


4
2017-10-20 21:29





apt op Ubuntu 16.04+

Naast apt-cache parameters zoals policy, showpkg en show, nu hebben we een meer eenvoudige, gemakkelijk te onthouden parameter, opdracht: apt (niet verwarren met klassiek apt-*):

apt policy <package> 

of het alternatief met meer info apt show <package>, regel beginnend met "APT-Bronnen:".

Beschrijving: Dit pakket biedt commandoregelhulpmiddelen voor zoeken en beheren en voor het opvragen van informatie over pakketten als toegang op laag niveau tot alle functies van de bibliotheek libapt-pkg. Deze omvatten:apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

Basiscommando's van apt --help

Andere ook gemakkelijk te onthouden parameters:

  • list - lijst met pakketten op basis van pakketnamen
  • search - zoek in pakketbeschrijvingen
  • show - toon pakketgegevens
  • update - update lijst met beschikbare pakketten
  • install - installeer pakketten
  • remove - verwijder pakketten
  • upgrade - upgrade het systeem door pakketten te installeren / upgraden
  • full-upgrade - upgrade het systeem door pakketten te verwijderen / installeren / upgraden
  • edit-sources - bewerk het broninformatiebestand

2
2018-06-01 19:27



apt policy xxx lijkt identiek aan apt-cache policy xxx, misschien had dit in plaats daarvan een opmerking moeten zijn geweest. Of vermeld dat tenminste apt show lijkt het nodig te hebben -a schakelen om 'extra records' uit andere bronnen te bekijken - Xen2050


Dit is iets nauwkeuriger:

apt-cache show <packagename> | grep "Version:"

De nieuwste versie wordt meestal geïnstalleerd, tenzij u apt-pinning hebt ingesteld of een bepaalde versie expliciet installeert.


1
2018-03-15 06:02