Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами


Linux*
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.

Краткая справка 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

Очистить кэш загруженных пакетов (освободить место)
aptitude autoclean # удалятся только пакеты неактуальных версий
aptitude clean # очистится весь кэш

Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)
sudo dpkg -i /path/to/package.deb

Для получения доп информации
man aptitude
sudo aptitude install aptitude-doc-en

и смотрим документацию, кому быструю справку по поисковым шаблонам, тому сюда. Если лень ставить доку, то в сети она есть.
Вводная на Debian Wiki: wiki.debian.org/Aptitude

А теперь то что не очевидно или требует полного прочтения документации

1. Как после update посмотреть какие пакеты будут обновлены?
aptitude search ?upgradable

также можно юзать (если поставить)
sudo daptup

2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать
sudo aptitude changelog package_name

для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить
sudo dpkg-reconfigure apt-listchanges

3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета
sudo aptitude version package_name

и установить её
sudo aptitude install package_name=version

4. Как найти все пакеты установленные вручную?
aptitude search ‘~i!~M’

5. Как посмотреть список файлов в пакете?
dpkg -L package_name

или поставить apt-file и
apt-file list package_name

6. Как посмотреть какому пакету принадлежит файл?
dpkg -S file_name

7. Как удалить все пакеты, где есть key в названии пакета?
sudo aptitude purge ~ikey

8. Как удалить оставшиеся конфиги от удалённых пакетов?
sudo aptitude purge ~c

9. Как найти пакет пакет, в котором содержится файл lib.so:
apt-file search lib.so

10. Как сконвертировать rpm пакет в deb?
alien --to-deb /path/to/file.rpm

11. Как найти список установленных ядер?
dpkg --list linux-* | grep ii

12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
sudo aptitude -t testing package_name
или
sudo aptitude package_name/testing
13. Что есть ещё?
apt-cdrom
apt-spy
Некоторые вещи умеет только apt-get

Благодарю всех кто помог своими советами в рассылке и жж и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao). Замечания и дополнения приветствуются.
2012   apt-get   aptitude   linux   ubuntu
Popular