Памятка по управлению пакетами в Debian и Ubuntu
15 августа 2012
Помните, как некоторое время назад у меня не срослось с установкой FreeBSD на Asus Eee PC 1215P и я был вынужден поставить Xubuntu? Тот случай неиллюзорно намекнул мне, что поддержка железа операционной системой имеет большее значение, нежели я полагал. Притом не только на десктопе — на серверах также требуется поддержка сетевых карт, RAID контроллеров и тп. А теперь я понял еще кое-что. Система управления пакетами во FreeBSD очень далека от совершенства. Это вынужден признать даже такой фанат Фряшки, как я.
Вот некоторые из проблем, с которыми сталкивается пользователь FreeBSD:
- Необходимо следить за /usr/ports/UPDATING и периодически выполнять описанные там действия;
- Софт во FreeBSD зачастую обновляется не так быстро, как в Linux;
- Не всякий софт во FreeBSD доступен в виде бинарного пакета, вспомним хотя бы OpenOffice;
- А некоторого софта вообще нет (из недавнего припоминаю wxFormBuilder);
- Иногда удивляют опции, с которыми были собраны бинарные пакеты (так бинарный пакет Perl собран без поддержки нитей);
- Заморочки с лицензиями, например, при установке шрифтов или софта, написанного на Java;
- Удаление пакетов, ставших ненужными, автоматизировано лишь частично (в утилите pkg_cleanup);
А вот пользователи Debian и основанных на нем дистрибутивах с этими проблемами не сталкиваются. Все управление пакетами в Debian происходит с помощью следующих простых команд.
Обновление базы доступных пакетов:
Пакеты можно искать через веб-интерфейс или с помощь команды:
Просмотр дополнительной информации о пакете:
Получения списка доступных версий пакета:
Установка пакета:
… или, в случае всяких там Dropbox, Skype и тп:
Переустановка пакета:
Даунгрейд или установка определенной версии:
Если не переустанавливается, можно попробовать так (осторожно, временно ломаются зависимости):
sudo apt-get install имя_пакета
Обновление всех пакетов (с подробностями):
Запретить/разрешить обновление конкретного пакета:
sudo apt-mark unhold имя_пакета
Посмотреть список пакетов на холде:
Проверка контрольных сумм установленных пакетов:
Список установленных пакетов и поиск по нему:
Удаление пакета:
Удаление вместе с файлами конфигурации:
Удаление пакетов, которые были установлены в качестве зависимостей и более не требуются:
Чистка кэша deb-пакетов (каталог /var/cache/apt/archives/):
Просмотр логов — что и когда ставилось:
Иногда нужно определить, к какому пакету относится файл. Данную задачу можно решить так:
А еще можно получить список всех файлов, содержащихся в пакете:
В общем, все легко и просто, если не считать пары моментов. Во-первых, иногда требуется установить какой-нибудь экспериментальный пакет (из ветки sid). Для этого нужно открыть файл /etc/apt/sources.list и дописать в него строчку:
… после чего говорим «sudo apt-get update», ставим нужный пакет, удаляем строчку из sources.list и вновь говорим «sudo apt-get update».
Во-вторых, некоторые пакеты тянут за собой слишком много лишнего софта. Например, mail-notifications тянет за собой postfix и требует его настроить. Для решения это проблемы следует прописать в /etc/apt/apt.conf следующее:
После чего все должно пройти как по маслу:
sudo apt-get install mail-notification
Альтернативное решение, не требующее правки apt.conf:
Бывает еще так, что нужно создать резервную копию уже установленного пакета. Например, если он по каким-то причинам был удален из репозитория. Такое иногда бывает в случае со внутренними репозиториями компании. Решается эта проблема так:
sudo dpkg-repack имя_пакета
Из приятных фишек Debian/Ubuntu мне особенно хотелось бы отметить умение выводить суммарный размер пакетов при их установке/удалении, а также способность делать так:
Приложение 'dia' может быть найдено в следующих пакетах:
* dia-gnome
* dia
Попробуйте: sudo apt-get install <выбранный пакет>
Чтобы такая же фишка появилась в zsh, нужно прописать в ~/.zshrc:
/usr/lib/command-not-found $1
}
Также вас могут заинтересовать следующие ссылки:
- Про сборку из исходников в Debian;
- Памятка по управлению пакетами в CentOS, Fedora и RHEL;
- Управление пакетами в Arch Linux с помощью ABS и pacman;
- Управление пакетами во FreeBSD при помощи утилиты pkg;
Следует отметить, что активно пользоваться Linux я начал недавно (после многолетнего перерыва), так что если вы видите в заметке какой-нибудь косяк, не постесняйтесь сообщить о нем в комментариях. А ежели косяков не видно, тогда просто поведайте мне, пользуетесь ли вы Linux, если да, то каким, похож ли его менеджер пакетов на APT, и довольны ли вы им.
Метки: Linux.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.