До тексту
  1. Статті/

Керування пакетами (apt) в Debian

·3 хвилини
cat /etc/passwd
Автор
cat /etc/passwd
Технічний блог про Linux, DevOps та Open Source технології.
Зміст

Менеджер пакетів — це те, що робить життя в Linux нормальним: встановити, оновити, налаштувати чи знести софт можна однією командою, і воно саме розрулює всі залежності. У кожного дистрибутива свій менеджер, а в світі Debian (і всього що на ньому — Ubuntu, Proxmox, Mint і т.д.) головний інструмент — це apt (Advanced Package Tool).

Нижче — усе що з ним реально роблю в житті.

Оновити список пакетів і систему
#

Перше що робиш завжди — оновлюєш індекс пакетів, а вже потім ставиш чи оновлюєш.

1
2
3
4
5
# Оновити список доступних пакетів (нічого не встановлює)
apt update

# Оновити встановлені пакети до нових версій
apt upgrade

Як встановити пакет
#

1
2
3
4
# apt install [назва_пакета]
# Ставить пакет з репозиторіїв.

apt install vim

Як видалити пакет
#

1
2
3
4
# apt remove [назва_пакета]
# Видаляє пакет, але лишає конфіги.

apt remove apache2
1
2
3
4
# apt purge [назва_пакета]
# Видаляє пакет разом з конфігами.

apt purge apache2

Прибирання за собою
#

Три команди для чистки, і люди їх постійно плутають. Тому по порядку.

apt autoremove
#

1
apt autoremove

Зносить непотрібні залежності, які колись автоматично притягнув інший пакет, а зараз вони вже нікому не треба (наприклад, коли ти видалив головний пакет). Руками встановлені пакети не чіпає.

Приклад: поставив пакетА, який тягнув за собою пакетБ. Потім пакетА видалив — і пакетБ теж піде, якщо його більше ніхто не використовує.

Так система лишається чистою, без «осиротілих» пакетів.

apt autoclean
#

1
apt autoclean

Видаляє старі непотрібні .deb з кешу (/var/cache/apt/archives/). Чіпає тільки ті пакети, яких уже нема в репозиторіях (наприклад, оновилися до новіших версій). Актуальні .deb, що ще потрібні, не чіпає.

Приклад: на сервері лежить старий nginx_1.21, а в репо вже nginx_1.22.1-9 — старий .deb буде видалено.

Економить місце без ризику щось поламати.

apt clean
#

1
apt clean

Виносить весь кеш пакетів (.deb) з /var/cache/apt/archives/. Геть усі файли, навіть актуальні й потрібні для повторної установки. Після clean пакети доведеться качати з репо наново.

Приклад: після apt clean тека /var/cache/apt/archives/ стає порожня.

Максимально звільняє диск.

Як знайти пакет
#

1
2
3
4
# Сучасна команда пошуку.
# Шукає пакети в репозиторіях за ключовим словом.

apt search nginx-core
1
2
3
# Старіша версія тієї ж команди.

apt-cache search nginx-core

Як подивитися інфу про пакет
#

1
apt show nginx-core

Показує детальну інформацію про пакет з репозиторію:

  • опис (що це й для чого),
  • доступні версії в репо,
  • залежності й конфлікти з іншими пакетами,
  • розмір для завантаження,
  • автори, ліцензія тощо.
1
apt policy curl

Показує, які версії пакета доступні в репозиторіях і чи він взагалі встановлений:

  • поточну встановлену версію (якщо стоїть),
  • доступні версії в репозиторіях,
  • пріоритети репозиторіїв (Pin-Priority).

Як глянути встановлені пакети
#

1
2
3
4
5
# Встановлені пакети
apt list --installed

# Пакети, які можна оновити
apt list --upgradable

Як оновити систему повністю
#

1
2
3
4
5
# еквівалент apt-get dist-upgrade
# Оновлює всі пакети, ставить нові версії й розрулює зміни в залежностях,
# навіть якщо для цього треба щось видалити.

apt full-upgrade

Як заблокувати оновлення пакета
#

1
2
3
# nginx-core не буде оновлюватись при apt upgrade.

apt-mark hold nginx-core
1
2
3
# Розблоковує пакет — знову можна оновлювати.

apt-mark unhold nginx-core

Як подивитися залежності пакета
#

1
2
3
# Покаже, які пакети потрібні для роботи apache2.

apt depends apache2
1
2
3
# Покаже список пакетів, яким потрібен libssl1.1.

apt rdepends libssl1.1

Редагувати список репозиторіїв
#

1
2
3
4
# Відкриває /etc/apt/sources.list у редакторі за замовчуванням,
# щоб руками поправити репозиторії.

apt edit-sources

А готові sources.list під кожну версію Debian я вже зібрав окремо — ось тут.

Related