Ubuntu: Работа с пакетами

10 января 2017 - 10:20

Существует 3 основных команды для работы с пакетами:

dpkg
aptitude
apt-get
apt

dpkg

Низкоуровневая команда, которая не умеет загружать пакеты или разрешать зависимости. С помощью нее удобно работать с конкретным deb пакетом:

# Установить конкретный пакет
sudo dpkg -i имя_пакета.deb
# Список пакетов
dpkg -l

# Поиск пакета
dpkg -l | grep nginx

# Получить список файлов пакета
dpkg -L nginx

# Показывает каким пакетом установлен файл
dpkg -S /usr/share/doc/nginx/README.Debian

# Заблокировать обновление пакета
sudo echo 'vim hold' | sudo dpkg --set-selections

# Снять запрет на обновление
echo 'имя_пакета install' | sudo dpkg --set-selections

# Список пакетов со статусами
dpkg --get-selections

aptitude

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

# Установка пакета (ов)
sudo aptitude install пакет1 [пакет2 ...]

# Удаление пакета с сохранением пользовательских настроек
sudo aptitude remove имя_пакета1 [имя_пакета2 ...]

# Удаление пакета в с пользовательскими настройками
sudo aptitude purge пакет1 [пакет2 ...]

# Информация по пакету
aptitude show vim

# Поиск по названию пакета
aptitude search vim

# Поиск по описанию пакета
aptitude search ~dVim

# Графический режим
aptitude

apt-get

Стандартная и наиболее распространенная утилита для управления пакетами - то же самое, что и aptitude, но без графического интерфейса.

Полезные ссылки:
Сравнение apt и apt-get

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

# Обновляются установленные зависимости
# Конфликтные пакеты остаются как есть
sudo apt-get update
sudo apt-get upgrade

# Удалит старые пакеты, разрешит конфликты, доставит необходимые зависимости
sudo apt-get dist-upgrade

# Установка/удаление пакета
sudo apt-get install vim

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

# Удаление пакета и всех файлов конфигурации
apt remove имя_пакета

# То же самое, что и apt remove, но тремя командами
sudo apt-get remove имя_пакета
sudo apt-get purge имя_пакета
sudo apt-get autoremove