it-swarm.dev

Jak zjistím, ze kterého úložiště balíček pochází?

Existuje metoda nebo příkaz, který dokáže zjistit, ze kterého úložiště balíček pochází?

170
dfme

Potřebné příkazy:

  • dpkg -s <package> - umožňuje najít verzi, kterou jste nainstalovali. ( zdroj )
  • apt-cache showpkg <package> - zobrazí seznam verzí dostupného balíčku. Pro každou verzi bude uveden zdroj balíčku ve formě názvu indexového souboru.

Pokud chcete najít zdroj aktuálně nainstalovaného balíčku, budete potřebovat výstup dpkg -s <package>. Jinak se můžete jednoduše podívat na výstup nejnovější verze pomocí apt-cache showpkg <package>.

Příklad:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <[email protected]>
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
...

Z prvního příkazu vidím, že je nainstalována verze Liferea 1.6.2-1ubuntu6. Z druhého příkazu vidím, že tato verze je uvedena v /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

Bez přílišného úsilí mohu odvodit, že zdrojový řádek obsahuje archive.ubuntu.com, ubuntu, lucid a main.

A samozřejmě, můj /etc/apt/sources.list obsahuje následující řádek.

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

Použijte následující příkaz. Má lepší výkon:

apt-cache policy <Package Name>

Pro Ubuntu 16.04 a novější je kratší způsob, jak to udělat:

apt policy <Package Name>
119
SuB

apt na Ubuntu 16.04+

Vedle apt-cache policy, showpkg a show, nyní máme jednodušší a snadno zapamatovatelné dílčí příkazy: apt (nenechte se zmást s klasickým apt-*):

apt policy <package> 

Nebo alternativa s více informacemi apt show <package>, řádek začínající „Zdroje APT:“ .

Popis: Tento balíček poskytuje nástroje příkazového řádku pro vyhledávání a správu a dotazování informací o balíčcích jako nízkoúrovňový přístup ke všem funkcím libapt-pkg knihovna. Tyto zahrnují:apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

Základní příkazy od apt --help

Jiné dílčí příkazy, které lze snadno zapamatovat:

  • apt list - seznam balíčků na základě názvů balíčků
  • apt search - hledat v popisech balíčků
  • apt show - zobrazí podrobnosti o balíčku
  • apt update - aktualizace seznamu dostupných balíčků
  • apt install - instalace balíčků
  • apt remove - odstranit balíčky
  • apt purge - odstranit balíčky a konfigurační soubory :

    Odstranění balíčku odstraní všechna zabalená data, ale obvykle zůstanou malé (upravené) konfigurační soubory uživatele v případě, že odebrání bylo náhodou. Pouhé vydání požadavku na instalaci náhodně odebraného balíčku obnoví jeho funkci jako předtím v tomto případě. Na druhou stranu se těchto zbytků můžete zbavit voláním čištění i na již odstraněných balíčcích. Toto neovlivní žádná data ani konfiguraci uloženou ve vašem domovském adresáři.

  • apt upgrade - upgradujte systém instalací/upgradováním balíčků

  • apt full-upgrade - upgradujte systém odebráním/instalací/upgradem balíčků
  • apt edit-sources - upravte zdrojový informační soubor
11
Pablo Bianchi

Tyto informace se bohužel během instalace balíčku nezaznamenají. Pokud je úložiště stále ve zdrojovém seznamu a úložiště stále obsahuje balíček, můžete provést dobrý odhad.

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

Ani synaptický nedokáže zjistit, zda úložiště a aktualizaci zakážete.

6
kanaka
Sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

zdroj

4
sBlatt

To je trochu přesnější:

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

Nejnovější verze bude obvykle nainstalována, pokud nenastavíte apt-pinning nebo výslovně nenainstalujete konkrétní verzi.

1
mchid