APT, або Advanced Package Tool, являє собою інструмент командного рядка, призначений для керування пакунками в дистрибутивах, що базуються на Debian чи Ubuntu.
Цей менеджер пакетів, поряд з такими як apt-get, дозволяє встановлювати, змінювати або видаляти різні програмні пакунки без необхідності їх компіляції з початкового коду. Він надає широкий спектр можливостей у сфері керування пакунками, які ми розглянемо далі.
Основний синтаксис використання команди apt виглядає наступним чином:
$ apt [КОМАНДА] [ПАКУНОК]
Важливо пам’ятати про необхідність використання команди sudo перед apt, оскільки багато з його підкоманд вимагають адміністративних прав для внесення змін на рівні системи.
У наступних розділах ми детальніше розглянемо різноманітні підкоманди, які можна використовувати з apt, а також їх практичне застосування.
Оновлення бази даних пакетів
Для коректної роботи APT потрібен репозиторій пакунків, який містить базу даних з інформацією про всі доступні для встановлення пакети в системі Debian/Ubuntu. Перед початком встановлення нового пакета, цю базу даних необхідно оновити, щоб APT мав точну інформацію про пакет, його версію, архітектуру та розташування в мережі.
Процес оновлення бази даних репозиторію є досить простим і виконується за допомогою наступної команди:
$ sudo apt update
Наприклад:
[email protected]:~$ sudo apt update Отримано:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] Хіт:2 http://azure.archive.ubuntu.com/ubuntu focal InRelease Отримано:3 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] Отримано:4 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] Отримано:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1086 kB] Отримано:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [841 kB] Завантажено 2255 кБ за 1 с (2677 кБ/с) Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово 14 пакунків можна оновити. Запустіть 'apt list --upgradable' щоб їх побачити. [email protected]:~$
Оновлення встановлених пакунків
Для оновлення вже встановлених у системі пакунків до їх останніх доступних версій використовується наступна команда:
$ sudo apt upgrade
Під час виконання цієї команди, пакунки будуть оновлені, якщо це необхідно для задоволення залежностей. Проте, існуючі пакунки ніколи не будуть видалені. Якщо оновлення пакету вимагає видалення вже встановленого, то таке оновлення не буде виконано.
Наприклад:
[email protected]:~$ sudo apt update Отримано:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] Хіт:2 http://azure.archive.ubuntu.com/ubuntu focal InRelease Отримано:3 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] Отримано:4 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] Отримано:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1086 kB] Отримано:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [841 kB] Завантажено 2255 кБ за 1 с (2677 кБ/с) Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово 14 пакунків можна оновити. Запустіть 'apt list --upgradable' щоб їх побачити. [email protected]:~$ sudo apt upgrade Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Обчислення оновлення… Готово Наступні пакунки буде оновлено: apt apt-utils libapt-pkg6.0 libpython3.8 libpython3.8-minimal libpython3.8-stdlib libuv1 linux-base linux-base-sgx open-vm-tools python3-distupgrade python3.8 python3.8-minimal ubuntu-release-upgrader-core 14 оновлено, 0 встановлено нових, 0 видалено та 0 не оновлено. Потрібно отримати 9485 кБ архівів. Після цієї операції буде використано додатково 603 кБ дискового простору. Бажаєте продовжити? [Y/n] Y Отримано:1 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libapt-pkg6.0 amd64 2.0.6 [835 kB] Отримано:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 apt amd64 2.0.6 [1296 kB] Отримано:3 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 apt-utils amd64 2.0.6 [216 kB] Отримано:4 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8 amd64 3.8.10-0ubuntu1~20.04 [1625 kB] Отримано:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8 amd64 3.8.10-0ubuntu1~20.04 [387 kB] Отримано:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-stdlib amd64 3.8.10-0ubuntu1~20.04 [1675 kB] Отримано:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8-minimal amd64 3.8.10-0ubuntu1~20.04 [1898 kB] Отримано:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-minimal amd64 3.8.10-0ubuntu1~20.04 [717 kB] Отримано:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libuv1 amd64 1.34.2-1ubuntu1.3 [80.8 kB] Отримано:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 ubuntu-release-upgrader-core all 1:20.04.35 [23.9 kB] Отримано:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3-distupgrade all 1:20.04.35 [104 kB] Отримано:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-base all 4.5ubuntu3.6 [17.8 kB] Отримано:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-base-sgx all 4.5ubuntu3.6 [4660 B] Отримано:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 open-vm-tools amd64 2:11.2.5-2ubuntu1~ubuntu20.04.1 [604 kB] Завантажено 9485 кБ за 0 с (54,4 МБ/с) Попередня настройка пакунків ... (Зчитування бази даних ... 59511 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../libapt-pkg6.0_2.0.6_amd64.deb ... Розпаковування libapt-pkg6.0:amd64 (2.0.6) поверх (2.0.5) ... Налаштування libapt-pkg6.0:amd64 (2.0.6) ... (Зчитування бази даних ... 59511 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../archives/apt_2.0.6_amd64.deb ... Розпаковування apt (2.0.6) поверх (2.0.5) ... Налаштування apt (2.0.6) ... (Зчитування бази даних ... 59511 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../00-apt-utils_2.0.6_amd64.deb ... Розпаковування apt-utils (2.0.6) поверх (2.0.5) ... Підготовка до розпакування .../01-libpython3.8_3.8.10-0ubuntu1~20.04_amd64.deb ... Розпаковування libpython3.8:amd64 (3.8.10-0ubuntu1~20.04) поверх (3.8.5-1~20.04.3) ... Підготовка до розпакування .../02-python3.8_3.8.10-0ubuntu1~20.04_amd64.deb ... Розпаковування python3.8 (3.8.10-0ubuntu1~20.04) поверх (3.8.5-1~20.04.3) ... Підготовка до розпакування .../03-libpython3.8-stdlib_3.8.10-0ubuntu1~20.04_amd64.deb ... Розпаковування libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04) поверх (3.8.5-1~20.04.3) ... Підготовка до розпакування .../04-python3.8-minimal_3.8.10-0ubuntu1~20.04_amd64.deb ... Розпаковування python3.8-minimal (3.8.10-0ubuntu1~20.04) поверх (3.8.5-1~20.04.3) ... Підготовка до розпакування .../05-libpython3.8-minimal_3.8.10-0ubuntu1~20.04_amd64.deb ... Розпаковування libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04) поверх (3.8.5-1~20.04.3) ... Підготовка до розпакування .../06-libuv1_1.34.2-1ubuntu1.3_amd64.deb ... Розпаковування libuv1:amd64 (1.34.2-1ubuntu1.3) поверх (1.34.2-1ubuntu1.1) ... Підготовка до розпакування .../07-ubuntu-release-upgrader-core_1%3a20.04.35_all.deb ... Розпаковування ubuntu-release-upgrader-core (1:20.04.35) поверх (1:20.04.33) ... Підготовка до розпакування .../08-python3-distupgrade_1%3a20.04.35_all.deb ... Розпаковування python3-distupgrade (1:20.04.35) поверх (1:20.04.33) ... Підготовка до розпакування .../09-linux-base_4.5ubuntu3.6_all.deb ... Розпаковування linux-base (4.5ubuntu3.6) поверх (4.5ubuntu3.1) ... Підготовка до розпакування .../10-linux-base-sgx_4.5ubuntu3.6_all.deb ... Розпаковування linux-base-sgx (4.5ubuntu3.6) поверх (4.5ubuntu3.1) ... Підготовка до розпакування .../11-open-vm-tools_2%3a11.2.5-2ubuntu1~ubuntu20.04.1_amd64.deb ... Розпаковування open-vm-tools (2:11.2.5-2ubuntu1~ubuntu20.04.1) поверх (2:11.0.5-4) ... Налаштування libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04) ... Налаштування apt-utils (2.0.6) ... Налаштування linux-base (4.5ubuntu3.6) ... Налаштування python3-distupgrade (1:20.04.35) ... Налаштування libuv1:amd64 (1.34.2-1ubuntu1.3) ... Налаштування linux-base-sgx (4.5ubuntu3.6) ... Налаштування ubuntu-release-upgrader-core (1:20.04.35) ... Налаштування python3.8-minimal (3.8.10-0ubuntu1~20.04) ... Налаштування open-vm-tools (2:11.2.5-2ubuntu1~ubuntu20.04.1) ... Встановлення нової версії файлу конфігурації /etc/vmware-tools/tools.conf.example ... Встановлення нової версії файлу конфігурації /etc/vmware-tools/vgauth.conf ... Налаштування libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04) ... Налаштування python3.8 (3.8.10-0ubuntu1~20.04) ... Налаштування libpython3.8:amd64 (3.8.10-0ubuntu1~20.04) ... Обробка тригерів для libc-bin (2.31-0ubuntu9.2) ... Обробка тригерів для systemd (245.4-4ubuntu3.7) ... Обробка тригерів для man-db (2.9.1-1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... [email protected]:~$
Рекомендується виконувати команду `sudo apt update` перед оновленням пакунків, щоб уникнути проблем під час оновлення та переконатися, що ви отримуєте найсвіжіші версії з репозиторію. За бажанням, ці команди можна об’єднати в один рядок:
$ sudo apt update && sudo apt upgrade -y
Повне оновлення пакунків
APT також надає команду повного оновлення. Її відмінність від простого оновлення полягає в тому, що вона може видаляти встановлені пакунки, якщо це необхідно для оновлення всієї системи. Тому, використовуючи цю команду, слід бути обережним і за можливості віддавати перевагу звичайному оновленню.
$ sudo apt full-upgrade
Встановлення окремого пакунка
Для встановлення нового пакунка за допомогою apt використовується наступний синтаксис:
$ sudo apt install [назва-пакунка]
Наприклад:
[email protected]:~$ sudo apt install unzip Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Рекомендовані пакунки: zip Наступні НОВІ пакунки буде встановлено: unzip 0 оновлено, 1 встановлено нових, 0 видалено та 14 не оновлено. Потрібно отримати 169 кБ архівів. Після цієї операції буде використано додатково 593 кБ дискового простору. Отримано:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB] Завантажено 169 кБ за 0 с (4040 кБ/с) Вибір раніше не вибраного пакунка unzip. (Зчитування бази даних ... 59511 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../unzip_6.0-25ubuntu1_amd64.deb ... Розпаковування unzip (6.0-25ubuntu1) ... Налаштування unzip (6.0-25ubuntu1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... Обробка тригерів для man-db (2.9.1-1) ... [email protected]:~$
Встановлення кількох пакунків
За допомогою apt можна встановити одночасно кілька пакунків. Синтаксис схожий на попередній приклад:
$ sudo apt install [назва-пакунка-1] [назва-пакунка-2] ... [назва-пакунка-n]
Наприклад:
[email protected]:~$ sudo apt install zip unzip Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Наступні НОВІ пакунки буде встановлено: unzip zip 0 оновлено, 2 встановлено нових, 0 видалено та 0 не оновлено. Потрібно отримати 336 кБ архівів. Після цієї операції буде використано додатково 1231 кБ дискового простору. Отримано:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB] Отримано:2 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 zip amd64 3.0-11build1 [167 kB] Завантажено 336 кБ за 0 с (7749 кБ/с) Вибір раніше не вибраного пакунка unzip. (Зчитування бази даних ... 59527 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../unzip_6.0-25ubuntu1_amd64.deb ... Розпаковування unzip (6.0-25ubuntu1) ... Вибір раніше не вибраного пакунка zip. Підготовка до розпакування .../zip_3.0-11build1_amd64.deb ... Розпаковування zip (3.0-11build1) ... Налаштування unzip (6.0-25ubuntu1) ... Налаштування zip (3.0-11build1) ... Обробка тригерів для man-db (2.9.1-1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... [email protected]:~$
Якщо один із зазначених пакунків вже встановлено в системі, apt перевірить наявність оновлень в репозиторії та, у випадку їх наявності, оновить пакунок або залишить встановлену версію без змін.
Встановлення конкретної версії
Часто виникає потреба встановити конкретну версію пакунка, особливо в корпоративних системах. APT дозволяє встановлювати певну версію пакунка, за умови, що вона доступна в репозиторії, за допомогою наступної команди:
$ sudo apt install [назва-пакунка]=[версія]
Наприклад:
[email protected]:~$ sudo apt install unzip=6.0-25ubuntu1 Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Наступні НОВІ пакунки буде встановлено: unzip 0 оновлено, 1 встановлено нових, 0 видалено та 0 не оновлено. Потрібно отримати 169 кБ архівів. Після цієї операції буде використано додатково 593 кБ дискового простору. Отримано:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB] Завантажено 169 кБ за 0 с (2767 кБ/с) Вибір раніше не вибраного пакунка unzip. (Зчитування бази даних ... 59541 файлів та каталогів, встановлених на даний момент.) Підготовка до розпакування .../unzip_6.0-25ubuntu1_amd64.deb ... Розпаковування unzip (6.0-25ubuntu1) ... Налаштування unzip (6.0-25ubuntu1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... Обробка тригерів для man-db (2.9.1-1) ... [email protected]:~$
Видалення пакунка
Аналогічно встановленню, apt можна використовувати для видалення пакунка з системи за допомогою наступної команди:
$ sudo apt remove [назва-пакунка]
Наприклад:
[email protected]:~$ sudo apt remove unzip Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Наступні пакунки буде ВИДАЛЕНО: unzip 0 оновлено, 0 встановлено нових, 1 видалено та 14 не оновлено. Після цієї операції буде звільнено 593 кБ дискового простору. Бажаєте продовжити? [Y/n] Y (Зчитування бази даних ... 59529 файлів та каталогів, встановлених на даний момент.) Видалення unzip (6.0-25ubuntu1) ... Обробка тригерів для man-db (2.9.1-1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... [email protected]:~$
Очищення пакунка
Подібно до видалення, очищення пакунка також виконує видалення, але з однією важливою відмінністю: звичайна команда `remove` видаляє лише двійкові файли пакунка, залишаючи його конфігураційні файли без змін. Команда `purge`, натомість, видаляє все, що стосується пакунка, включаючи його двійкові файли та конфігураційні файли. Залишення конфігураційних файлів може бути корисним, якщо ви плануєте перевстановити програму, оскільки це дозволить вам повторно використовувати ті ж налаштування.
Для очищення пакунка використовуйте:
$ sudo apt purge [назва-пакунка]
Наприклад:
[email protected]:~$ sudo apt purge unzip Зчитування списків пакунків… Готово Побудова дерева залежностей Зчитування інформації про стан… Готово Наступні пакунки буде ВИДАЛЕНО: unzip* 0 оновлено, 0 встановлено нових, 1 видалено та 14 не оновлено. Після цієї операції буде звільнено 593 кБ дискового простору. Бажаєте продовжити? [Y/n] Y (Зчитування бази даних ... 59529 файлів та каталогів, встановлених на даний момент.) Видалення unzip (6.0-25ubuntu1) ... Обробка тригерів для man-db (2.9.1-1) ... Обробка тригерів для mime-support (3.64ubuntu1) ... (Зчитування бази даних ... 59511 файлів та каталогів, встановлених на даний момент.) Очищення конфігураційних файлів для unzip (6.0-25ubuntu1) ... [email protected]:~$
Пошук пакунків
APT можна використовувати не тільки для встановлення та видалення, але й для пошуку потрібних пакунків у репозиторії за допомогою команди `search`:
$ apt search [пошуковий-текст]
Наприклад:
[email protected]:~$ apt search netstat Сортування... Готово Повнотекстовий пошук... Готово bwm-ng/focal 0.6.2-1 amd64 Маленький і простий консольний монітор смуги пропускання gnome-nettool/focal 3.8.1-3 amd64 Інструмент мережевої інформації для GNOME golang-github-aelsabbahy-gonetstat-dev/focal 0.0~git20160428.0.edf89f7-3 all Реалізація Netstat на Go golang-github-mwitkow-go-conntrack-dev/focal 0.0~git20190716.2f06839-1 all Проміжне програмне забезпечення Go для відстеження net.Conn libparse-netstat-perl/focal 0.14-1 all Модуль для розбору виводу команди "netstat" net-tools/focal 1.60+git20180626.aebd88e-1ubuntu1 amd64 Мережевий набір інструментів NET-3 netstat-nat/focal 1.4.10-3build1 amd64 Інструмент, який відображає NAT-з’єднання nicstat/focal 1.95-1build1 amd64 Виводить статистику мережевого трафіку qnetstatview/focal 1.5.6-1 amd64 Показує детальні списки всіх TCP і UDP кінцевих точок unhide/focal 20130526-4 amd64 Криміналістичний інструмент для пошуку прихованих процесів і портів whichman/focal 2.4-9 amd64 Відмовостійкі утиліти пошуку: whichman, ftff, ftwhich [email protected]:~$
Перегляд вмісту пакунка
Для отримання детальної інформації про пакунок, незалежно від того, чи він встановлений, чи буде встановлений, можна використовувати команду `show`:
$ apt show [назва-пакунка]
Наприклад:
[email protected]:~$ apt show firefox Пакунок: firefox Версія: 90.0+build1-0ubuntu0.20.04.1 Пріоритет: необов'язковий Секція: web Походження: Ubuntu Супроводжує: Ubuntu Mozilla Team <[email protected]> Помилки: https://bugs.launchpad.net/ubuntu/+filebug Встановлений розмір: 226 МБ Надає: gnome-www-browser, iceweasel, www-browser Залежить: lsb-release, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.30), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.10.1), libgcc-s1 (>= 3.3), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.42), libgtk-3-0 (>= 3.14), libharfbuzz0b (>= 0.6.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libstdc++6 (>= 9), libx11-6, libx11-xcb1 (>= 2:1.6.9), libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.4.5), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6, libxrender1, libxt6 Рекомендує: xul-ext-ubufox, libcanberra0, libdbusmenu-glib4, libdbusmenu-gtk3-4 Пропонує: fonts-lyx Замінює: kubuntu-firefox-installer Задача: ubuntu-desktop-minimal, ubuntu-desktop, kubuntu-desktop, kubuntu-full, xubuntu-desktop, lubuntu-desktop, ubuntustudio-desktop, ubuntukylin-desktop, ubuntu-mate-core, ubuntu-mate-desktop, ubuntu-budgie-desktop Xul-Appid: {ec8030f7-c20a-464f-9b0e-13a3a9e97384} Розмір для завантаження: 57,0 МБ Джерела APT: http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages Опис: Безпечний і простий веб-браузер від Mozilla Firefox забезпечує безпечний, простий перегляд веб-сторінок. Знайомий інтерфейс користувача, розширені функції безпеки, включаючи захист від крадіжки ідентифікаційних даних в Інтернеті, та інтегрований пошук дозволяють вам отримати максимальну користь від Інтернету. N: Є 1 додатковий запис. Будь ласка, використовуйте параметр '-a', щоб його переглянути [email protected]:~$
Список встановлених пакунків
Часто виникає необхідність переглянути список встановлених пакунків у системі. apt надає можливість отримати цей список за допомогою:
$ apt list --installed
Список усіх пакунків
Щоб переглянути список усіх пакунків, доступних для вашої системи, скористайтеся командою `list` з ключовим словом `–all-versions`:
$ apt list --all-versions
Список пакунків, що підлягають оновленню
Пакунки потребують постійного оновлення, оскільки нові версії регулярно випускаються з покращеннями, додатковими функціями та виправленнями помилок, включаючи критичні вразливості безпеки. apt дозволяє легко підтримувати вашу систему Debian/Ubuntu в актуальному стані за допомогою команди оновлення, як згадувалося раніше. Щоб переглянути список всіх доступних оновлень для встановлених пакунків у вашій системі, виконайте:
$ apt list --upgradable
Наприклад:
[email protected]:~$ apt list --upgradable Виведення... Готово apt-utils/focal-updates 2.0.6 amd64 [можливе оновлення: 2.0.5] apt/focal-updates 2.0.6 amd64 [можливе оновлення: 2.0.5] libapt-pkg6.0/focal-updates 2.0.6 amd64 [можливе оновлення: 2.0.5] libpython3.8-minimal/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [можливе оновлення: 3.8.5-1~20.04.3] libpython3.