Jak zjistím, z kterého repozitáře pochází balíček?

115

Existuje nějaká metoda nebo příkaz, který může zjistit, od kterého repozitáře pochází balíček?

    
dané dfme 20.10.2010 22:43

6 odpovědí

85

Potřebné příkazy:

  • dpkg -s <package> - umožňuje vám najít verzi jste nainstalovali. ( zdroj )
  • apt-cache showpkg <package> - bude zobrazit seznam verzí balíček k dispozici. Pro každou verzi, zdroj balíčku, v formulářového názvu souboru souboru

Chcete-li najít zdroj aktuálně nainstalovaného balíku, potřebujete výstupdpkg -s <package>. Jinak můžete jednoduše podívat na nejnovější verzi výstupuapt-cache showpkg <package>.

Příklad:

$ 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
...

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š velkého úsilí mohu odvodit, že zdrojový řádek obsahuje archive.ubuntu.com , ubuntu , lucid main .

A určitě můj/etc/apt/sources.list obsahuje následující řádek.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
    
odpověděl mac9416 20.10.2010 23:49
86

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

apt-cache policy <Package Name>

Ubuntu 16.04 a novější je kratší způsob:

apt policy <Package Name>
    
odpověděl SuB 20.09.2013 08:21
6

Je zřejmé, že tato informace není zaznamenána během instalace balíčku. Můžete udělat dobrý odhad, pokud je úložiště stále v seznamu zdrojů a úložiště má stále balíček:

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

Dokonce ani Synaptic neumí zjistit, zda zakážete úložiště a aktualizujete.

    
odpověděl kanaka 20.10.2010 23:37
4

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

zdroj

    
odpověděl sBlatt 20.10.2010 23:29
3

apt na Ubuntu 16.04 +

Kromě parametrůapt-cache jakopolicy,showpkg ashow, nyní máme jednodušší a snadno zapamatovatelné parametry: apt (nezaměňujte s klasickýmapt-*):

apt policy <package> 

nebo alternativa s více informacíapt show <package>, řádek začínající "APT-Zdroje:".

Popis: Tento balíček obsahuje nástroje pro správu příkazů pro vyhledávání a správu a dotazování informací o balíčcích jako přístup na všechny úrovně knihovny libapt-pkg. Patří sem:apt-get,apt-cache,apt-cdrom,apt-config,apt-key.

Základní příkazy zapt --help

Ostatní také snadno zapamatovatelné parametry:

  • list - seznam balíčků založených na názvech balíků
  • search - vyhledávání v popisu balíčků
  • show - zobrazit podrobnosti o balíčku
  • update - aktualizovat seznam dostupných balíků
  • install - instalace balíčků
  • remove - odebrat balíčky
  • upgrade - upgrade systému instalací / upgradováním balíků
  • full-upgrade - upgrade systému odstraněním / instalací / upgradováním balíků
  • edit-sources - upravte zdrojový informační soubor
odpověděl Pablo Bianchi 01.06.2017 21:27
1

To je trochu přesnější:

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

Nejnovější verze bude obvykle nainstalována, pokud nemáte nastavenou apt-pinning nebo explicitně nainstalujete konkrétní verzi.

    
odpověděl mchid 15.03.2015 07:02