Uczę się interfejsu CLI Advanced Packaging Tool. Z wyjścia, apt(8)
gdy jego standardowe wyjście nie jest terminalem, nie nadaje się do „skryptów oczekujących stabilnego interfejsu programistycznego”, więc przyjmuję apt-get(8)
.
Jedną różnicą między apt update
i apt-get update
jest to, że ten ostatni brakuje ostatniej linii po zaktualizowaniu całej pamięci podręcznej:
8 packages can be upgraded. Run 'apt list --upgradable' to see them.
Chcę wiedzieć, jak mogę wyświetlić dokładnie ten wiersz apt-get(8)
.
apt
(Advanced Packaging Tool) iapt-get
są różne rzeczy. Są zaprojektowane tak, aby działały inaczej niż rozumiałem. Jeśli ktoś daje ci to, czego chcesz, być może nawyk używania tego polecenia.Odpowiedzi:
man apt-get
przedstawia:Więc jeśli tylko to zrobisz:
apt-get upgrade --dry-run
wyświetli:
źródło
man 8 apt-get
i znalazłem tę opcję, ale wynik był inny niżapt
.apt
jest to naprawdę programowe opakowanieapt-get
i to jest powód, dla którego istnieje ostrzeżenie.apt
pokazuje8 packages can be upgraded. Run 'apt list --upgradable' to see them.
, a twoja odpowiedź pokazuje4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
apt
nie zagwarantuje ci tego tekstu i mogą nawet nie zagwarantować ci tego numeru.apt-get
ma jednak ścisły wymóg wyjściowy, ponieważ jest używany przez inne oprogramowanie (takie jak interfejsy użytkownika i demony) do przetwarzania go na różne sposoby. Możesz więc zmienić kod, aby akceptowałapt-get
dane wyjściowe, lub możesz| sed 's/to upgrade/packages can be upgraded/g'
na przykład (i zaryzykować złamanie kodu później).Zgaduję, że musisz obsłużyć liczbę dostępnych aktualizacji, oto sugestia:
Nie ma potrzeby sudo
Wyjście jest łatwe w obsłudze
Więcej opcji:
źródło
motd
przy logowaniu SSH?Od
man 8 apt
:Następnie przeszedłem
/usr/share/doc/apt/examples/configure-index.gz
(używajączcat(1)
do wyświetlenia zawartości tekstu) i zauważyłem tę opcję:Opracowałem więc następującą komendę, która zrobiła dokładnie to, co chciałem:
Testowany pod kątem pracy z Xenial i Bionic.
źródło