Установка программ на Ubuntu и Debian: apt, snap, dpkg, репозитории | AdminWiki

Установка программ на Ubuntu: полное руководство для разработчиков и администраторов

17 декабря 2025 8 мин. чтения #apt #debian #devops #dpkg #linux #snap #ubuntu #пакеты #терминал #установка программ
Содержание статьи

Введение: почему Ubuntu и Debian — короли пакетных менеджеров

Представь, что ты только что установил свежую Ubuntu или Debian. Перед тобой чистый рабочий стол, а в голове — список необходимых инструментов: редактор кода, браузер, утилиты для разработки. Как установить всё это быстро, безопасно и без головной боли? Именно этому мы и научимся.

Системы на основе Debian, к которым относится Ubuntu, славятся своей системой управления пакетами — одной из самых продуманных в мире Linux. Давай разберем все способы установки программ на Ubuntu, от базовых команд apt до продвинутых техник.

Важно: Почти все, что работает для установки программ на Ubuntu, применимо и для Debian. Эти системы используют один и тот же фундамент — формат пакетов .deb и менеджер apt.

Основы: система пакетов APT

APT (Advanced Package Tool) — это сердце дистрибутивов Debian и Ubuntu. Это не одна команда, а целая экосистема, которая заботится о зависимостях, обновлениях и целостности системы.

Обновление списка пакетов

Перед любой установкой всегда обновляй информацию о доступных пакетах. Это как проверить свежий каталог в магазине перед покупками.

bash
sudo apt update

Поиск пакетов

Не знаешь точное название пакета? Используй поиск:

bash
apt search "python web"
# Или с grep для точного поиска
apt list | grep -i nginx

Установка пакетов

Базовая команда установки. APT автоматически разрешит все зависимости.

bash
sudo apt install nginx python3-pip git

Можно установить несколько пакетов одной командой, просто перечислив их через пробел.

Удаление пакетов

Есть два способа удаления:

  • sudo apt remove nginx — удаляет пакет, но оставляет конфигурационные файлы
  • sudo apt purge nginx — удаляет пакет ВМЕСТЕ со всеми конфигами
  • sudo apt autoremove — удаляет неиспользуемые зависимости, которые остались после удаления пакетов

Обновление системы

Регулярное обновление — залог безопасности и стабильности.

bash
# Обновить список пакетов и установить обновления
sudo apt update && sudo apt upgrade

# Обновить дистрибутив до новой версии (осторожно!)
sudo apt dist-upgrade
Внимание: dist-upgrade может удалять пакеты, если это необходимо для обновления. Всегда делайте бэкап или проверяйте список изменений перед выполнением.

Работа с репозиториями

Репозитории — это онлайн-хранилища пакетов. Ubuntu и Debian используют разные репозитории, но принцип работы с ними одинаков.

Добавление PPA (Personal Package Archive)

PPA — это специальные репозитории от разработчиков или сообщества, где можно найти свежие версии программ.

bash
# Добавить PPA
sudo add-apt-repository ppa:ondrej/php

# Обновить список пакетов после добавления PPA
sudo apt update

# Установить пакет из PPA
sudo apt install php8.2

Добавление репозиториев вручную

Иногда нужно добавить репозиторий вручную через редактирование файлов в /etc/apt/sources.list или /etc/apt/sources.list.d/.

bash
# Пример добавления репозитория Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

Установка пакетов DEB вручную

Иногда нужной программы нет в репозиториях, но разработчик предоставляет файл .deb. Вот как с ним работать:

Установка через dpkg

dpkg — низкоуровневый инструмент для работы с пакетами .deb.

bash
# Установка пакета .deb
sudo dpkg -i package.deb

# Если возникли ошибки зависимостей
sudo apt install -f

# Просмотр информации о пакете
dpkg -l | grep package
dpkg -L package  # список файлов пакета

Установка через gdebi

gdebi — умная утилита, которая автоматически разрешает зависимости при установке .deb файлов.

bash
# Установить gdebi
sudo apt install gdebi-core

# Установить .deb пакет с автоматическим разрешением зависимостей
sudo gdebi package.deb

Snap пакеты — универсальная альтернатива

Snap — это кроссплатформенная система пакетов от Canonical (создателей Ubuntu). Пакеты изолированы и содержат все зависимости.

bash
# Поиск snap пакетов
snap find postgresql

# Установка snap пакета
sudo snap install postgresql10 --classic

# Просмотр установленных snap пакетов
snap list

# Обновление всех snap пакетов
sudo snap refresh

# Удаление snap пакета
sudo snap remove postgresql10
Snap vs APT: Snap пакеты обычно больше по размеру (содержат все зависимости), но лучше изолированы и проще в обновлении. APT пакеты интегрированы в систему и используют общие библиотеки.

Flatpak — еще один универсальный формат

Flatpak — аналог Snap, популярный в других дистрибутивах. Часто используется для десктопных приложений.

bash
# Установка Flatpak (если нет)
sudo apt install flatpak

# Добавление репозитория Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# Установка приложения через Flatpak
flatpak install flathub org.gimp.GIMP

# Запуск Flatpak приложения
flatpak run org.gimp.GIMP

Установка из исходных кодов

Когда нужна самая свежая версия или кастомная сборка, приходится компилировать из исходников.

bash
# Типичный процесс установки из исходников

# 1. Установить зависимости для сборки
sudo apt install build-essential libssl-dev curl

# 2. Скачать исходники
curl -L https://github.com/project/project.tar.gz -o project.tar.gz
tar -xzf project.tar.gz
cd project

# 3. Конфигурация (если есть configure скрипт)
./configure --prefix=/usr/local

# 4. Или использование CMake (альтернатива)
mkdir build && cd build
cmake ..

# 5. Сборка
make -j$(nproc)  # Использовать все ядра процессора

# 6. Установка
sudo make install

Установка через языковые менеджеры пакетов

Для разработчиков: многие языки программирования имеют свои менеджеры пакетов.

bash
# Python (pip)
sudo apt install python3-pip
pip3 install django numpy pandas

# Node.js (npm)
sudo apt install nodejs npm
npm install -g express nodemon

# Ruby (gem)
sudo apt install ruby
sudo gem install rails

# Rust (cargo)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install bat exa

Сравнение методов установки

Метод Плюсы Минусы Когда использовать
APT Интеграция с системой, общие библиотеки, автоматические обновления Версии могут быть старыми Для системных пакетов и стабильных версий
Snap Изоляция, свежие версии, кроссплатформенность Большой размер, медленный запуск Для десктопных приложений и изолированных сред
Flatpak Хорошая изоляция, много десктопных приложений Дополнительная инфраструктура Графические приложения из Flathub
Исходники Самые свежие версии, кастомные сборки Сложно, нет автоматических обновлений Когда нужна конкретная версия или патч
DEB файлы Простота установки отдельных пакетов Ручное обновление, возможны конфликты Когда разработчик предоставляет только .deb

Полезные команды для работы с пакетами

bash
# Просмотр информации о пакете
apt show nginx

# Какие пакеты установлены
apt list --installed

# Какие файлы принадлежат пакету
dpkg -L nginx

# Какому пакету принадлежит файл
dpkg -S /usr/bin/nginx

# Проверка зависимостей пакета
apt-cache depends nginx

# Какие пакеты зависят от данного
apt-cache rdepends nginx

# Очистка кэша пакетов
sudo apt clean          # Удалить ВСЕ кэшированные пакеты
sudo apt autoclean      # Удалить устаревшие кэшированные пакеты

FAQ: Часто задаваемые вопросы

Как установить программу, если нет в репозиториях?

1. Проверь Snap или Flatpak — многие современные приложения там есть.
2. Поищи PPA от разработчиков.
3. Скачай .deb файл с официального сайта.
4. Установи из исходников как последний вариант.

В чем разница между apt update и apt upgrade?

apt update обновляет только список доступных пакетов (метаданные). apt upgrade скачивает и устанавливает сами обновления. Всегда выполняй update перед upgrade.

Как откатить установку пакета?

Можно удалить пакет и установить конкретную версию:

bash
# Просмотреть доступные версии
apt-cache policy nginx

# Установить конкретную версию
sudo apt install nginx=1.18.0-0ubuntu1

Что делать если apt install выдает ошибки зависимостей?

Попробуй:

bash
# Исправить зависимости
sudo apt install -f

# Обновить список пакетов и попробовать снова
sudo apt update
sudo apt install --fix-broken

# В крайнем случае — переустановить
sudo apt reinstall package-name

Как добавить репозиторий в Ubuntu/Debian?

Самый безопасный способ — через add-apt-repository или добавление файла в /etc/apt/sources.list.d/. Никогда не добавляй непроверенные репозитории — это угроза безопасности!

Заключение: лучшие практики

Установка программ на Ubuntu и Debian — это искусство, которое становится интуитивным с опытом. Запомни главное:

  1. Всегда начинай с официальных репозиториев — это самый стабильный и безопасный вариант.
  2. Используй PPA только от проверенных разработчиков.
  3. Snap и Flatpak отлично подходят для десктопных приложений и изолированных сред.
  4. Регулярно обновляй систему: sudo apt update && sudo apt upgrade.
  5. Держи систему в чистоте: sudo apt autoremove и sudo apt autoclean.
  6. Перед установкой из сомнительных источников проверяй хэши и подписи пакетов.

Теперь у тебя есть полный арсенал для работы с пакетами в Ubuntu и Debian. Эти навыки пригодятся не только для установки программ, но и для управления серверами, контейнерами и целыми кластерами. Практикуйся, экспериментируй и не бойся командной строки — это твой главный инструмент в мире Linux!

Поделиться:
Сохранить гайд? В закладки браузера