Próbuję znaleźć sposób, aby uzyskać listę pakietów, które nie są już dostępne w repozytoriach, które mam włączone. Ta stacja robocza przeszła kilka wersji Ubuntu i dodała i usunęła wiele repozytoriów stron trzecich. Chciałbym uzyskać listę oprogramowania, które mam z tych usuniętych repozytoriów, dzięki czemu mogę je wyczyścić lub dodać z powrotem odpowiednie repozytoria.
package-management
Sean
źródło
źródło
apt-show-versions | grep "newer than version in archive"
Aby uzyskać listę aplikacji, które nie znajdują się w zarejestrowanym repozytorium lub PPA, wykonaj następujące czynności:
To powinno wypisać tekst w ten sposób:
Dla mnie to zadziałało i pokazało trzy aplikacje, które zainstalowałem przy użyciu pakietów DEB i nie były dostępne w Repo ani PPA.
Pamiętaj jednak, że nie można sprawdzić wszystkich programów, tylko tych, które przeszły
dpkg
. Na przykład niektóre aplikacje są instalowane przez rozpakowanie ich do odpowiednich folderów, a inne wykorzystują autonomiczny pojemnik lub skrypt instalatora. Najlepszym sposobem jest więc zachowanie listy aplikacji zainstalowanych za pomocą dowolnej metody innej niż APT.źródło
dpkg
zainstalowanych pakietów. Jeden wyjątek. Wymieniaskype-bin
, podczas gdyapt-cache policy skype-bin
wyraźnie pokazuje repozytorium partnerów Canonical. Nie jestem pewien, co się dzieje. Problem z wieloma stronami? Nadal +1 zaapt-show-versions
!Jeśli masz zainstalowane aptitude ,
lub jego krótka forma
Oto przykładowy wynik
Pierwszy znak każdej linii wskazuje aktualny stan paczki. Najczęstsze stany to:
Drugi znak wskazuje zapisaną akcję do wykonania na pakiecie, jeśli taka istnieje, w przeciwnym razie wyświetlana jest pusta spacja. Najczęstsze działania to:
Jeśli trzecim znakiem jest A, pakiet został zainstalowany automatycznie.
Aby uzyskać pełną listę możliwych flag stanu i akcji, zobacz sekcję Uzyskiwanie dostępu do informacji o pakiecie w przewodniku referencyjnym aptitude.
źródło
aptitude search ?obsolete
może działać w trybie bash, ale powinieneś użyćaptitude search '?obsolete'
Począwszy od wersji Ubuntu 19.10 można również uruchomić
aby uzyskać listę przestarzałych pakietów.
W każdym wydaniu możesz użyć następującego linijki Bash:
Nie ma potrzeby instalowania dodatkowych pakietów do tego, a to jest stosunkowo szybkie. Znajduje to również częściowo zainstalowane pakiety (ale nie znajdzie tych, w których pozostały tylko pliki konfiguracyjne; można je jednak łatwo zmienić). Uwaga: nie ma znaczenia, jaką architekturą są pakiety.
Jeśli chcesz dołączyć pakiety, które mają zainstalowaną inną wersję niż dostępna z repozytoriów, możesz wykonać jedną z następujących czynności:
Użyj nowoczesnego apt:
Jeszcze inną opcją jest uruchomienie
i przeczytaj nazwy pakietów w sekcji „Nie można już pobrać:”.
źródło
Więcej informacji do zbadania.
... status Ubuntu-support i apt-mark mogą wymagać instalacji.
źródło
sudo
zapt-mark showmanual
.ubuntu-support-status
wyświetla liczbę przestarzałych pakietów, ale nie nazwy pakietów.ubuntu-support-status --help
Może być czystszy sposób, ale możesz to zrobić z czubka mojej głowy
Wyczyść kilka pierwszych wierszy
installed
pliku: będzie miał nagłówki.Premia, jeśli ktoś może naprawić podświetlanie składni ...
źródło
dpkg -l
do uzyskania listy zainstalowanych pakietów, powinieneś ograniczyć wyniki do linii z „i” w drugiej kolumnie, ponieważ dpkg wyświetli również listę pakietów, które nie są zainstalowane (być może usunięte, ale nie usunięte) . jako przykład, zmiana pierwszego polecenia nadpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
to, że zwróci listę pakietów, które NIE są zainstalowane. (ale kiedyś były)apt-cache search someinstalledpackage
powróci coś nawet jeśli pakiet nie jest dostępny z repo, więc nie wierzę, to praca będzie w ogóle.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
drukuje również niektóre linie nagłówka.apt-cache search
dla każdego pakietu osobno.Jak wspomniano, wyszukiwanie apt-get nie jest dobrą metodą sprawdzenia, czy pakiet jest nadal dostępny. Dodatkowo dodałem wszystko do jednej linii:
źródło
grep '^i'
man dpkg-query
więcej informacji.apt-cache show
nie sprawdza się również, czy pakiet jest dostępny. Jeśli wyłączysz odpowiednie repozytorium, a żadne inne włączone repozytorium go nie ma, nadal wyświetla pakiet.