Урок 4. Установка программ: apt, snap и .deb
В Windows программу обычно скачивают с сайта и запускают установщик. В Ubuntu почти всё ставится из репозиториев — хранилищ программ, которые ведёт Ubuntu. Программа лежит там в виде пакета: архива с файлами и списком того, что ей нужно для работы, — зависимостей. Менеджер пакетов apt сам скачивает пакет, ставит зависимости, а потом обновляет всё это вместе с системой.
В Ubuntu Desktop то же можно делать мышью, в магазине приложений App Center. Здесь — команды: они одинаковы на компьютере и на сервере.
Обновить список и систему
sudo apt update
sudo apt upgradeapt update скачивает свежий список пакетов и их версий — сам ничего не ставит. apt upgrade ставит обновления по этому списку. Поэтому команды идут в паре и именно в таком порядке.
Перед изменениями apt показывает, что собирается сделать, и спрашивает Do you want to continue? [Y/n] (в русской системе — по-русски). Заглавная буква — ответ по умолчанию, так что Enter означает согласие. Ключ -y отвечает «да» заранее: sudo apt upgrade -y.
apt list --upgradable— что будет обновлено;sudo apt full-upgrade— обновление, которому разрешено и удалять пакеты, если иначе обновить нельзя. Оно нужно при больших изменениях, например перед переходом на новую версию Ubuntu.
Сообщение The following upgrades have been deferred due to phasing — не ошибка. Ubuntu выпускает часть обновлений постепенно, не всем компьютерам сразу; отложенные пакеты придут позже сами.
Найти и установить
apt search htop
apt show htop
sudo apt install htopapt search— ищет по названию и описанию;apt show— описание, версия и размер пакета;sudo apt install— ставит пакет вместе с зависимостями. Можно сразу несколько:sudo apt install git curl.
После установки программа запускается по имени (htop), а если у неё есть окно — появляется и в списке приложений.
Удалить
sudo apt remove htop
sudo apt purge htop
sudo apt autoremoveremove— удаляет программу, но оставляет её системные настройки в/etc— на случай, если поставите снова;purge— удаляет программу вместе с этими настройками;autoremove— удаляет пакеты, которые ставились как зависимости и больше никому не нужны.
Файлы в домашней папке — документы и личные настройки программ — не удаляет ни одна из этих команд.
Прочитайте список, прежде чем согласиться. Если apt собирается удалить много пакетов, особенно ubuntu-desktop или другие пакеты рабочего стола, ответьте n и разберитесь, почему так вышло: иначе можно остаться без графического входа в систему.
Что установлено
apt list --installed
apt list --installed | grep python3
apt policy htopapt policy показывает установленную и доступную версии и откуда пакет берётся. Когда вывод apt передают через |, появляется предупреждение apt does not have a stable CLI interface — оно о скриптах и на результат не влияет. В скриптах вместо apt принято писать apt-get.
Откуда apt берёт пакеты
Список источников в Ubuntu 24.04 и новее — файл /etc/apt/sources.list.d/ubuntu.sources (в старых версиях — /etc/apt/sources.list). Пакеты Ubuntu делятся на разделы:
| Раздел | Что в нём |
|---|---|
| main | свободные программы, которые поддерживает Canonical |
| universe | свободные программы, которые поддерживает сообщество |
| restricted | несвободные драйверы устройств |
| multiverse | программы с ограничениями лицензии |
Сторонние источники — например, репозиторий разработчика программы — добавляются отдельными файлами в папку /etc/apt/sources.list.d/.
PPA (Personal Package Archive) — личный репозиторий на сайте Launchpad; создать его может кто угодно. Подключается он одной командой, которая сама обновит список пакетов:
sudo add-apt-repository ppa:имя/ppaВместо имя/ppa — имя PPA, которое указывает разработчик программы.
Пакеты из PPA и сторонних репозиториев ставятся с правами администратора, и Ubuntu их не проверяет. Подключайте только источники, которым доверяете, — обычно их указывает на своём сайте сам разработчик программы. Лишние PPA к тому же мешают переходу на новую версию Ubuntu.
Snap
Snap — другой формат приложений. Snap-пакет несёт все нужные библиотеки с собой, работает в изоляции от остальной системы и обновляется сам, в фоне. В Ubuntu Desktop так установлен, например, браузер Firefox.
snap find vlc
sudo snap install vlc
snap list
sudo snap refresh
sudo snap remove vlcsnap find— поиск,snap list— что установлено;snap refresh— обновить сейчас, не дожидаясь автоматического обновления;- программы, которым нужен полный доступ к системе, ставятся с ключом
--classic. Например, редактор кода VS Code:sudo snap install code --classic.
Snap-пакеты занимают больше места, чем обычные. Каждый подключён к системе как отдельный маленький диск loop — поэтому в списках дисков (df, lsblk) их много, и все они заполнены на 100 %. Это нормально.
Файлы .deb
Некоторые программы разработчики выкладывают на своих сайтах файлом .deb — это такой же пакет, как в репозитории. Ставится он тем же apt, с ./ перед именем файла:
sudo apt install ./program_1.0_amd64.debПодробно — в справке Как установить .deb файл.
Пакет .deb при установке выполняет свои скрипты с правами администратора. Скачивайте его только с официального сайта программы.
Что выбрать
| Способ | Когда |
|---|---|
| apt | почти всегда: системные программы, серверы, библиотеки, инструменты |
| snap | программы для рабочего стола, когда нужна свежая версия |
| .deb с сайта | программы, которых нет ни в apt, ни в snap |
Ставьте программу каким-то одним способом. Если одна и та же программа стоит и через apt, и через snap, легко запутаться, какая из них запускается.
Частые ошибки
E: Unable to locate package— опечатка в имени, не выполненsudo apt updateили такого пакета нет в вашей версии Ubuntu. Проверьте имя черезapt search.Could not get lock /var/lib/dpkg/lock-frontend— уже идёт другая установка, чаще всего автоматическое обновление. Что делать — в справке Ошибка Could not get lock.Permission deniedи вопросare you root?— команду запустили безsudo.
Коротко
- Программы ставятся из репозиториев:
sudo apt update, затемsudo apt install имя. - Обновить систему —
sudo apt updateиsudo apt upgrade. - Удалить —
remove(настройки остаются),purge(вместе с настройками),autoremove— лишние зависимости. - Snap — самодостаточные приложения с автообновлением:
sudo snap install имя. .debс сайта —sudo apt install ./файл.deb, только с официальных сайтов.