Содержание
Как перечислить пакеты, которые можно обновить с помощью apt и apt-get.
Определим операционную систему.
lsb_release --allNo LSB modules are available.Distributor ID: DebianDescription: Debian GNU/Linux 12 (bookworm)Release: 12Codename: bookworm
Обновим индекс пакетов
sudo apt-get --quiet --quiet update
apt
Перечислим пакеты, которые можно обновить, с помощью утилиты apt.
apt --quiet --quiet list --upgradeable
base-files/stable 12.4+deb12u8 amd64 [upgradable from: 12.4+deb12u7]
bsdextrautils/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
bsdutils/stable 1:2.38.1-5+deb12u2 amd64 [upgradable from: 1:2.38.1-5+deb12u1]
distro-info-data/stable 0.58+deb12u3 all [upgradable from: 0.58+deb12u2]
eject/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
fdisk/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
intel-microcode/stable 3.20240910.1~deb12u1 amd64 [upgradable from: 3.20240813.1~deb12u1]
iputils-ping/stable 3:20221126-1+deb12u1 amd64 [upgradable from: 3:20221126-1]
libblkid1/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
libc-bin/stable 2.36-9+deb12u9 amd64 [upgradable from: 2.36-9+deb12u8]
libc-l10n/stable 2.36-9+deb12u9 all [upgradable from: 2.36-9+deb12u8]
libc6/stable 2.36-9+deb12u9 amd64 [upgradable from: 2.36-9+deb12u8]
libcurl3-gnutls/stable 7.88.1-10+deb12u8 amd64 [upgradable from: 7.88.1-10+deb12u7]
libfdisk1/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
libglib2.0-0/stable 2.74.6-2+deb12u4 amd64 [upgradable from: 2.74.6-2+deb12u3]
libglib2.0-data/stable 2.74.6-2+deb12u4 all [upgradable from: 2.74.6-2+deb12u3]
libmount1/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
libnghttp2-14/stable 1.52.0-1+deb12u2 amd64 [upgradable from: 1.52.0-1+deb12u1]
libnss-systemd/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
libpam-systemd/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
libpython3.11-minimal/stable 3.11.2-6+deb12u4 amd64 [upgradable from: 3.11.2-6+deb12u3]
libpython3.11-stdlib/stable 3.11.2-6+deb12u4 amd64 [upgradable from: 3.11.2-6+deb12u3]
libsmartcols1/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
libsqlite3-0/stable 3.40.1-2+deb12u1 amd64 [upgradable from: 3.40.1-2]
libssl3/stable 3.0.15-1~deb12u1 amd64 [upgradable from: 3.0.14-1~deb12u2]
libsystemd-shared/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
libsystemd0/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
libudev1/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
libuuid1/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
linux-image-amd64/stable 6.1.115-1 amd64 [upgradable from: 6.1.112-1]
locales/stable 2.36-9+deb12u9 all [upgradable from: 2.36-9+deb12u8]
mount/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
openssl/stable 3.0.15-1~deb12u1 amd64 [upgradable from: 3.0.14-1~deb12u2]
python3.11-minimal/stable 3.11.2-6+deb12u4 amd64 [upgradable from: 3.11.2-6+deb12u3]
python3.11/stable 3.11.2-6+deb12u4 amd64 [upgradable from: 3.11.2-6+deb12u3]
systemd-sysv/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
systemd-timesyncd/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
systemd/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
udev/stable 252.31-1~deb12u1 amd64 [upgradable from: 252.30-1~deb12u2]
util-linux-extra/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
util-linux-locales/stable 2.38.1-5+deb12u2 all [upgradable from: 2.38.1-5+deb12u1]
util-linux/stable 2.38.1-5+deb12u2 amd64 [upgradable from: 2.38.1-5+deb12u1]
Определим количество доступных обновлений с помощью утилиты apt.
apt -o "Apt::Cmd::Disable-Script-Warning=true" --quiet --quiet list --upgradeable | \wc --lines42
Сгенерируем JSON-представление количества обновляемых пакетов с помощью утилиты apt.
apt -o "Apt::Cmd::Disable-Script-Warning=true" --quiet --quiet list --upgradeable | \awk '{updates++;} END {printf "{ \"updates\": " (updates ? updates : 0) " }\n"}'{ "updates": 42 }
apt-get
Перечислим пакеты, которые можно обновить с помощью утилиты apt-get.
apt-get -o "APT::Get::Show-User-Simulation-Note=false" --quiet --quiet --simulate upgrade | grep ^InstInst base-files [12.4+deb12u7] (12.4+deb12u8 Debian:12.8/stable [amd64])Inst bsdutils [1:2.38.1-5+deb12u1] (1:2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libc6 [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [amd64])Inst libsmartcols1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst util-linux-extra [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst util-linux [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libc-bin [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [amd64])Inst mount [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libnss-systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libblkid1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64]) []Inst libmount1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64]) []Inst libssl3 [3.0.14-1~deb12u2] (3.0.15-1~deb12u1 Debian:12.8/stable [amd64]) []Inst systemd-timesyncd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libpam-systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libsystemd-shared [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libsystemd0 [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst systemd-sysv [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst libuuid1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libfdisk1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst python3.11 [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst libpython3.11-stdlib [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst python3.11-minimal [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst libpython3.11-minimal [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64])Inst libsqlite3-0 [3.40.1-2] (3.40.1-2+deb12u1 Debian:12.8/stable [amd64])Inst udev [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libudev1 [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst fdisk [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst iputils-ping [3:20221126-1] (3:20221126-1+deb12u1 Debian:12.8/stable [amd64])Inst intel-microcode [3.20240813.1~deb12u1] (3.20240910.1~deb12u1 Debian:12.8/stable [amd64])Inst libc-l10n [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [all])Inst locales [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [all])Inst bsdextrautils [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst distro-info-data [0.58+deb12u2] (0.58+deb12u3 Debian:12.8/stable [all])Inst eject [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libnghttp2-14 [1.52.0-1+deb12u1] (1.52.0-1+deb12u2 Debian:12.8/stable [amd64])Inst libcurl3-gnutls [7.88.1-10+deb12u7] (7.88.1-10+deb12u8 Debian:12.8/stable [amd64])Inst libglib2.0-0 [2.74.6-2+deb12u3] (2.74.6-2+deb12u4 Debian:12.8/stable [amd64])Inst libglib2.0-data [2.74.6-2+deb12u3] (2.74.6-2+deb12u4 Debian:12.8/stable [all])Inst openssl [3.0.14-1~deb12u2] (3.0.15-1~deb12u1 Debian:12.8/stable [amd64])Inst util-linux-locales [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [all])
Определим количество доступных обновлений с помощью утилиты apt-get.
apt-get -o "APT::Get::Show-User-Simulation-Note=false" --quiet --quiet --simulate upgrade | \grep --count ^Inst41
Сгенерируйте JSON-представление количества обновляемых пакетов с помощью утилиты apt.
apt-get -o "APT::Get::Show-User-Simulation-Note=false" --quiet --quiet --simulate upgrade | \awk '/^Inst/ {updates++;} END {printf "{ \"updates\": " (updates ? updates : 0) " }\n"}'{ "updates": 41 }
Предостережения и рекомендации по использованию apt-получить и apt
Используйте apt-get в производственных средах благодаря его предсказуемому и надежному интерфейсу командной строки.
При использовании apt-get вы также можете включить новые зависимости, которые будут установлены, добавив параметр –with-new-dpkgs.
apt-get -o "APT::Get::Show-User-Simulation-Note=false" --quiet --quiet --simulate --with-new-pkgs upgrade | grep ^InstInst base-files [12.4+deb12u7] (12.4+deb12u8 Debian:12.8/stable [amd64])Inst bsdutils [1:2.38.1-5+deb12u1] (1:2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libc6 [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [amd64])Inst libsmartcols1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst util-linux-extra [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst util-linux [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libc-bin [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [amd64])Inst mount [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libnss-systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libblkid1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64]) []Inst libmount1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64]) []Inst libssl3 [3.0.14-1~deb12u2] (3.0.15-1~deb12u1 Debian:12.8/stable [amd64]) []Inst systemd-timesyncd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libpam-systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst systemd [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libsystemd-shared [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libsystemd0 [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst systemd-sysv [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst libuuid1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libfdisk1 [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst python3.11 [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst libpython3.11-stdlib [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst python3.11-minimal [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64]) []Inst libpython3.11-minimal [3.11.2-6+deb12u3] (3.11.2-6+deb12u4 Debian:12.8/stable [amd64])Inst libsqlite3-0 [3.40.1-2] (3.40.1-2+deb12u1 Debian:12.8/stable [amd64])Inst udev [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64]) []Inst libudev1 [252.30-1~deb12u2] (252.31-1~deb12u1 Debian:12.8/stable [amd64])Inst fdisk [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst iputils-ping [3:20221126-1] (3:20221126-1+deb12u1 Debian:12.8/stable [amd64])Inst intel-microcode [3.20240813.1~deb12u1] (3.20240910.1~deb12u1 Debian:12.8/stable [amd64])Inst libc-l10n [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [all])Inst locales [2.36-9+deb12u8] (2.36-9+deb12u9 Debian:12.8/stable [all])Inst bsdextrautils [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst distro-info-data [0.58+deb12u2] (0.58+deb12u3 Debian:12.8/stable [all])Inst eject [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [amd64])Inst libnghttp2-14 [1.52.0-1+deb12u1] (1.52.0-1+deb12u2 Debian:12.8/stable [amd64])Inst libcurl3-gnutls [7.88.1-10+deb12u7] (7.88.1-10+deb12u8 Debian:12.8/stable [amd64])Inst libglib2.0-0 [2.74.6-2+deb12u3] (2.74.6-2+deb12u4 Debian:12.8/stable [amd64])Inst libglib2.0-data [2.74.6-2+deb12u3] (2.74.6-2+deb12u4 Debian:12.8/stable [all])Inst linux-image-6.1.0-27-amd64 (6.1.115-1 Debian:12.8/stable [amd64])Inst linux-image-amd64 [6.1.112-1] (6.1.115-1 Debian:12.8/stable [amd64])Inst openssl [3.0.14-1~deb12u2] (3.0.15-1~deb12u1 Debian:12.8/stable [amd64])Inst util-linux-locales [2.38.1-5+deb12u1] (2.38.1-5+deb12u2 Debian:12.8/stable [all])apt-get -o "APT::Get::Show-User-Simulation-Note=false" --quiet --quiet --simulate --with-new-pkgs upgrade | grep --count ^Inst43sudo apt upgradeReading package lists... DoneBuilding dependency tree... DoneReading state information... DoneCalculating upgrade... DoneThe following NEW packages will be installed:linux-image-6.1.0-27-amd64The following packages will be upgraded:base-files bsdextrautils bsdutils distro-info-data eject fdisk intel-microcode iputils-ping libblkid1 libc-bin libc-l10n libc6 libcurl3-gnutls libfdisk1 libglib2.0-0 libglib2.0-data libmount1 libnghttp2-14 libnss-systemdlibpam-systemd libpython3.11-minimal libpython3.11-stdlib libsmartcols1 libsqlite3-0 libssl3 libsystemd-shared libsystemd0 libudev1 libuuid1 linux-image-amd64 locales mount openssl python3.11 python3.11-minimal systemd systemd-sysvsystemd-timesyncd udev util-linux util-linux-extra util-linux-locales42 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.Need to get 108 MB of archives.After this operation, 408 MB of additional disk space will be used.Do you want to continue? [Y/n][...]
Таким образом, хотя сама по себе задача может показаться простой, всегда стоит изучить детали, чтобы избежать потенциальных ловушек.
см. также: