Шпаргалка начинающего администратора Ubuntu по управлению пакетами
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.Краткая справка Debian администратора
Основное и общеизвестное
Получение информации о новых/обновлённых пакетах:Обновление:sudo aptitude update
Поиск пакета по именам пакетов:sudo aptitude safe-upgrade
Поиск пакета по точному названию:aptitude search key_word
Поиск по описанию:aptitude search "^name$"
Информация о пакете:aptitude search "?description("key_word")"
Установка:aptitude show package_name
Удаление:sudo aptitude install package_name
Полное удаление (вместе с конфигами):sudo aptitude remove package_name
Очистить кэш загруженных пакетов (освободить место):sudo aptitude purge package_name
Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D):aptitude autoclean # удалятся только пакеты неактуальных версий
aptitude clean # очистится весь кэш
Для получения доп информации:sudo dpkg -i /path/to/package.deb
Вводная на Debian Wiki: wiki.debian.org/Aptitude.man aptitude
sudo aptitude install aptitude-doc-en
А теперь то что не очевидно или требует полного прочтения документации
1. Как после update посмотреть какие пакеты будут обновлены:Также можно юзать (если поставить):aptitude search ?upgradable
Но после его установки точно также будет себя вести и обычный update.sudo daptup
2. Как узнать что изменилось в пакетах которые будут обновлены? Можно пробовать:
Для каждого пакета. Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить:sudo aptitude changelog package_name
3. Что делать если обновление что-то поломало и нужно откатиться? Отката нет, можно попробовать найти предыдущую версию пакета:sudo dpkg-reconfigure apt-listchanges
И установить её:sudo aptitude version package_name
4. Как найти все пакеты установленные вручную? Есть вариант команды (aptitude search '~i!~M'), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов:sudo aptitude install package_name=version
- /var/log/aptitude (+ ротированные куски)
- /var/log/installer/initial-status.gz
- /var/log/dpkg.log (+ ротированные куски)
5. Как посмотреть список файлов в пакете? Если пакет установлен:
Для любых пакетов поставить apt-file и:dpkg -L package_name
6. Как посмотреть какому пакету принадлежит файл:apt-file list package_name
7. Как удалить все пакеты, где есть key в названии пакета:dpkg -S file_name
8. Как удалить оставшиеся конфиги от удалённых пакетов:sudo aptitude purge ~ikey
9. Как найти пакет пакет, в котором содержится файл lib.so:sudo aptitude purge ~c
10. Как сконвертировать rpm пакет в deb:apt-file search lib.so
11. Как найти список установленных ядер:alien --to-deb /path/to/file.rpm
12. Как установить пакет из testing или experimental? На эту тему нужно писать отдельно, но если кратко, то команды для этого есть:dpkg --list linux-* | grep ii
Или:sudo aptitude -t testing package_name
13. Как удалить метапакет, но оставить одну из зависимостей? Придётся почитать документацию про ключ unmarkauto.sudo aptitude package_name/testing
14. Как узнать что попало в файловую систему мимо системы управления пакетами? Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт:
15. Какие есть дополнительные репозитории?sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp
- Debian — wiki.debian.org/UnofficialRepositories
- Ubuntu — множество всяких PPA
- apt-cdrom
- apt-spy
- auto-apt
- apt-key
- apt-add-repository
- Некоторые вещи умеет только apt-get
- Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.