Jak w systemie opartym na Debianie, w tym Ubuntu, można stwierdzić, z którego repozytorium zostanie pobrany pakiet, bez faktycznego rozpoczęcia pobierania? aptitude show
i apt-cache info
pokaże sekcję (np. metapakiet, podstawa, grafika), ale nie repozytorium, do którego należy pakiet (np. http://ppa.launchpad.net/mactel-support/ppa/ubuntu lub http: // us .archive.ubuntu.com / ubuntu / ).
Podczas instalowania pakietu rzeczywiste repozytorium pojawia się podczas pobierania (jest drukowane w danych wyjściowych „pobieranie z ...” z apt i podobnych programów), ale jak można uzyskać informacje o repozytorium zawierającym pakiet (lub określony wersja pakietu) bez uprzedniego pobrania i zainstalowania?
Ponadto, w jaki sposób można określić repozytorium źródłowe dla pakietu, który jest już zainstalowany?
źródło
Odpowiedzi:
Biegam
apt-cache policy <package name>
:Oznacza to, że istnieją trzy
wajig
pakiety:Ten, który jest zainstalowany (
/var/lib/dpkg/status
)Jeden dostępny z lokalnego repozytorium (
file:/home/wena/.repo_bin/
)Jeden dostępny ze zdalnego repozytorium (
ftp://ftp.is.co.za/debian
), który również ma tę samą wersję ( 2.0.47 ) co ta w lokalnym repozytoriumDodatkowo
apt-cache madison <package name>
wyświetli podobne informacje w formacie tabelarycznym.źródło
2.1
wersja nie jest dostępna z żadnego repozytorium. Jest zbudowany lokalnie.***
czy/var/lib/dpkg/status
?apt-cache policy
mówi:Installed: (none)
.Aha! Najwyraźniej właściwym
apt
poleceniem nie jestapt-cache info
, ale zamiast tegoapt-cache showpkg
.File:
Linia stanowi repozytorium informacji po/var/lib/apt/lists/
.Istnieje raport o błędzie, który
aptitude
nie może wyświetlić repozytorium źródłowego , ale wydaje się, że obecnie funkcja ta wciąż znajduje się na liście życzeń.źródło
apt-cache showpkg
) nie jest oznaczona jako poprawna.To działa dla mnie (pokazuje, gdzie jest pakiet 2vcard):
Możesz zastosować dodatkowe filtrowanie, aby sprawdzić wersje itp., Jeśli dostępnych jest wiele wersji.
źródło
dpkg
.Zastanawiam się, dlaczego nikt nie wspomniał
aptitude
. Używam tego cały czas.Aptitude to:
sudo apt install aptitude
ncurses
GUI (ale bez niego większość czasu)zapewnia naprawdę ładną wydajność. Aby wyświetlić wersje pakietów, użyj
aptitude versions
polecenia:nie ma super krowich mocy
Litera przed każdym ciągiem oznacza status pakietu, i jest zainstalowany, a p jest czyszczony (lub nigdy nie jest instalowany), stabilne , testujące i niestabilne są definicjami repozytorium, liczba na końcu jest priorytetem pin .
Warto wspomnieć o jednym zastrzeżeniu dotyczącym najnowszych wersji aptitude: domyślnie pokazuje on wszystkie pakiety, które zawierają szukaną nazwę, więc użyj na przykład magii wyrażeń regularnych , aby na przykład wyszukać według ścisłej nazwy
aptitude versions ^kde-workspace$
.źródło
versions
możesz po prostu sprawdzić apt przypinające wartości podanych pakietów, a nie powiązane repozytorium. Jest to jednak przydatne, jeśli znasz wszystkie repozytorium i sposób ich przypięcia.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:
apt-cache showpkg
pokazuje dane z bazy danych repozytorium (nie to, co jest zainstalowane), więc jest to kolejna forma tych samych informacji z grep.Nawet synaptic nie może powiedzieć (na ekranie Origin), jeśli wyłączysz repozytorium i zaktualizujesz.
źródło
Lub, zainspirowany Sunny, możesz spróbować:
ps. nie w 100% dokładne.
źródło