Я изучаю интерфейс cli Усовершенствованного Упаковочного Инструмента. От вывода apt(8)
когда его stdout не является терминалом, это не подходит для "сценариев, ожидающих стабильный интерфейс программирования", таким образом, я смотрю на apt-get(8)
.
Одно различие между apt update
и apt-get update
это, последний пропускает заключительную строку после того, как весь кэш был обновлен:
8 packages can be upgraded. Run 'apt list --upgradable' to see them.
Я хочу знать, как я мог отобразить эту точную строку с apt-get(8)
.
man apt-get
шоу:
-s, --simulate, --just-print, --dry-run, --recon, --no-act
No action; perform a simulation of events that would occur based on
the current system state but do not actually change the system.
Locking will be disabled (Debug::NoLocking) so the system state
could change while apt-get is running. Simulations can also be
executed by non-root users which might not have read access to all
apt configuration distorting the simulation. A notice expressing
this warning is also shown by default for non-root users
(APT::Get::Show-User-Simulation-Note). Configuration Item:
APT::Get::Simulate.
Таким образом, если Вы просто делаете:
apt-get upgrade --dry-run
это произведет:
...
4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
...
Предположение Вас должно обработать количество доступных обновлений, вот предложение:
# With no option, returns two numbers, no CR nor LF
/usr/lib/update-notifier/apt-check
# With --human-readable, returns numbers, locale LANG text & CR/LF
/usr/lib/update-notifier/apt-check --human-readable
Никакая потребность к sudo
Вывод легок работать с
Больше опций:
> /usr/lib/update-notifier/apt-check --help
Usage: apt-check [options]
Options:
-h, --help show this help message and exit
-p, --package-names Show the packages that are going to be
installed/upgraded
--human-readable Show human readable output on stdout
--security-updates-unattended
Return the time in days when security updates are
installed unattended (0 means disabled)
От man 8 apt
:
... включает некоторые опции...
Затем я прошел /usr/share/doc/apt/examples/configure-index.gz
(использование zcat(1)
для показа текстового содержания), и заметил эту опцию:
apt::cmd::show-update-stats
Таким образом, я разработал следующую команду, которая сделала точно, что я хотел:
# apt-get -o apt::cmd::show-update-stats=true update
Протестированный, чтобы продолжить работать Гостеприимный и Бионический.