Czy istnieje metoda lub polecenie, które pozwala stwierdzić, z którego repozytorium pochodzi pakiet?
Czy istnieje metoda lub polecenie, które pozwala stwierdzić, z którego repozytorium pochodzi pakiet?
Odpowiedzi:
dpkg -s <package>
- pozwala znaleźć wersję, którą zainstalowałeś. ( źródło )apt-cache showpkg <package>
- wyświetli listę dostępnych wersji pakietu. Dla każdej wersji podane zostanie źródło pakietu, w postaci nazwy pliku indeksu.Jeśli chcesz znaleźć źródło aktualnie zainstalowanego pakietu, potrzebujesz danych wyjściowych dpkg -s <package>
. W przeciwnym razie możesz po prostu spojrzeć na najnowszą wersję danych wyjściowych przez apt-cache showpkg <package>
.
$ 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
...
Po pierwszym poleceniu widzę, że Liferea wersja 1.6.2-1ubuntu6 jest zainstalowana. Po drugim poleceniu 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 linia źródło zawiera archive.ubuntu.com
, ubuntu
, lucid
, i main
.
I rzeczywiście, mój /etc/apt/sources.list
zawiera następujący wiersz.
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
apt-cache policy <package name>
(z: superuser.com/a/236605/37279 )
trusty
źródeł pakietów Ubuntu , to tymczasowo dodaj utopic
do mojego sources.list
, aby zainstalować wersję 1.20ubuntu3, init-system-helpers
a następnie ponownie usuń repozytorium z mojego sources.list
, apt-cache showpkg init-system-helpers
po prostu kłamię na temat oryginalnej listy pakietów i apt-cache policy init-system-helpers
po prostu stwierdzę oczywistość.
Użyj następującego polecenia. Ma lepszą wydajność:
apt-cache policy <Package Name>
W przypadku Ubuntu 16.04 i nowszych istnieje krótszy sposób:
apt policy <Package Name>
apt-cache policy
zobacz także superuser.com/a/236605/61370
apt-cache policy
jest dobry, ale czasami trzeba apt-cache showpkg
porównać sumy MD5 z pakietu. Zobacz takżedebsums --changed
policy
opcja jest najbardziej użyteczna w porównaniu zsources.list
apt policy <package-name>
można użyć jeszcze prostszego , począwszy od 16.04LTS. Gdy 14.04LTS stanie się EOL'em w 2018 roku, odpowiedź ta może być edytowana w celu użycia nowszej komendy.
apt
na Ubuntu 16.04+Poza tym apt-cache policy
, showpkg
a show
teraz mamy prostsze, z łatwymi do zapamiętania podkomendami: apt
(nie mylić z klasyką apt-*
):
apt policy <package>
Lub alternatywa z większą ilością informacji apt show <package>
, wiersz zaczynający się od „APT-Sources:” .
Opis: Ten pakiet zawiera narzędzia wiersza polecenia do wyszukiwania i zarządzania, a także kwerendy o pakietach jako niski poziom dostępu do wszystkich funkcji biblioteki libapt-pkg. Należą do nich: apt-get
, apt-cache
, apt-cdrom
, apt-config
, apt-key
.
apt --help
Inne również łatwe do zapamiętania podkomendy:
apt list
- wyświetla listę pakietów na podstawie nazw pakietówapt search
- szukaj w opisach pakietówapt show
- pokaż szczegóły paczkiapt update
- zaktualizuj listę dostępnych pakietówapt install
- instaluj pakietyapt remove
- usuń paczkiapt purge
- usuń pakiety i pliki konfiguracyjne :
Usunięcie pakietu usuwa wszystkie spakowane dane, ale zwykle pozostawia za sobą małe (zmodyfikowane) pliki konfiguracyjne użytkownika, na wypadek gdyby usunięcie było wypadkiem. Samo wysłanie żądania instalacji przypadkowo usuniętego pakietu przywróci jego działanie, tak jak poprzednio. Z drugiej strony możesz pozbyć się tych resztek, wywołując purge nawet na już usuniętych pakietach. Pamiętaj, że nie wpływa to na żadne dane ani konfigurację przechowywane w twoim katalogu domowym.
apt upgrade
- zaktualizuj system, instalując / aktualizując pakiety
apt full-upgrade
- zaktualizuj system, usuwając / instalując / aktualizując pakietyapt edit-sources
- edytuj plik informacji o źródleapt policy xxx
wygląda identycznie apt-cache policy xxx
, być może powinien to być komentarz. Lub przynajmniej wspomnieć, że apt show
wydaje się , że potrzebny jest -a
przełącznik, aby wyświetlić „dodatkowe rekordy” z innych źródeł
Niestety ta informacja nie jest rejestrowana podczas instalacji pakietu. Możesz zgadnąć, czy repozytorium nadal znajduje się na liście źródeł, a repozytorium nadal ma pakiet:
grep -l PKG /var/lib/apt/lists/*
Nawet synaptic nie może stwierdzić, czy wyłączysz repozytorium i zaktualizujesz.