Jak mogę się dowiedzieć, z którego repozytorium pochodzi pakiet?

113

Czy istnieje metoda lub polecenie, które może określić, z którego repozytorium pochodzi pakiet?

    
zadawane dfme 20.10.2010, 22:43
źródło

6 odpowiedzi

83

Wymagane polecenia:

  • dpkg -s <package> - pozwala znajdź wersję tego masz zainstalowany. ( źródło )
  • apt-cache showpkg <package> - woli pokaż listę wersji pakiet dostępny. Dla każdej wersji źródło pakietu, w formie nazwy pliku indeksu, będzie dany.

Jeśli chcesz znaleźć źródło pakietu, który jest aktualnie zainstalowany, potrzebujesz danych wyjściowych dpkg -s <package> . W przeciwnym razie możesz po prostu spojrzeć na najnowszą wersję wyjściową przez apt-cache showpkg <package> .

Przykład:

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

Od pierwszego polecenia widzę, że jest zainstalowana Liferea w wersji 1.6.2-1ubuntu6. Z drugiego polecenia widzę, że ta wersja jest wymieniona w /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages .

Bez zbytniego wysiłku mogę wywnioskować, że wiersz źródłowy zawiera archive.ubuntu.com , ubuntu , lucid i main .

I, oczywiście, mój /etc/apt/sources.list zawiera następujący wiersz.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
    
odpowiedział mac9416 20.10.2010, 23:49
źródło
81

Użyj następującego polecenia. Ma lepsze wyjście:

apt-cache policy <Package Name>

Dla Ubuntu 16.04 i późniejszych jest to krótszy sposób:

apt policy <Package Name>
    
odpowiedział SuB 20.09.2013, 08:21
źródło
5

Niestety informacje te nie są rejestrowane podczas instalacji pakietu. Możesz zgadnąć, czy repozytorium nadal znajduje się na liście źródłowej, a repozytorium nadal ma pakiet:

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

Nawet synaptik nie może stwierdzić, czy wyłączasz repozytorium i aktualizujesz.

    
odpowiedział kanaka 20.10.2010, 23:37
źródło
4
sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

źródło

    
odpowiedział sBlatt 20.10.2010, 23:29
źródło
2

apt na Ubuntu 16.04 +

Oprócz apt-cache parametrów takich jak policy , showpkg i show , teraz mamy bardziej proste, łatwe do zapamiętania parametry, polecenie: apt (nie mylić z klasycznym apt-* ):

apt policy <package> 

lub alternatywa z dodatkowymi informacjami apt show <package> , linia zaczynająca się od "APT-Sources:".

Opis: Ten pakiet udostępnia narzędzia linii poleceń do wyszukiwania i zarządzania, a także do wysyłania zapytań o pakiety, jako dostępu niskiego poziomu do wszystkich funkcji biblioteki libapt-pkg. Obejmują one: apt-get , apt-cache , apt-cdrom , apt-config , apt-key .

Podstawowe polecenia od apt --help

Inne również łatwe do zapamiętania parametry:

  • list - wyświetla listę pakietów na podstawie nazw pakietów
  • search - szukaj w opisach pakietów
  • show - pokaż szczegóły pakietu
  • update - lista aktualizacji dostępnych pakietów
  • install - instaluj pakiety
  • remove - usuń pakiety
  • upgrade - uaktualnij system, instalując / aktualizując pakiety
  • full-upgrade - uaktualnij system, usuwając / instalując / aktualizując pakiety
  • edit-sources - edytuj plik z informacjami źródłowymi
odpowiedział Pablo Bianchi 01.06.2017, 21:27
źródło
1

Jest to trochę dokładniejsze:

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

Najnowsza wersja będzie zazwyczaj instalowana, chyba że ustawisz apt-pinning lub jawnie zainstalujesz konkretną wersję.

    
odpowiedział mchid 15.03.2015, 07:02
źródło

Przeczytaj inne pytania na temat tagów