Главная > Операционные системы > UNIX > Linux > Debian Шпаргалка начинающего Debian/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Очистить кэш загруженных пакетов (освободить место) # aptitude autocleanудалятся только пакеты неактуальных версий # aptitude cleanочистится весь кэш Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D) # sudo dpkg -i /path/to/package.debДля получения доп информации # man aptitude # sudo aptitude install aptitude-doc-enи смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда - /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть. Вводная на Debian Wiki: wiki.debian.org/Aptitude А теперь то что не очевидно или требует полного прочтения документации1. Как после update посмотреть какие пакеты будут обновлены?# aptitude search ?upgradableтакже можно юзать (если поставить) # sudo daptupно после его установки точно также будет себя вести и обычный update 2. Как узнать что изменилось в пакетах которые будут обновлены? Можно пробовать: # sudo aptitude changelog package_nameдля каждого пакета. Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить: # sudo dpkg-reconfigure apt-listchanges3. Что делать если обновление что-то поломало и нужно откатиться? Отката нет, можно попробовать найти предыдущую версию пакета # sudo aptitude version package_nameи установить её # sudo aptitude install package_name=version4. Как найти все пакеты установленные вручную? есть вариант команды (aptitude search '~i!~M'), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов /var/log/aptitude (+ ротированные куски)
/var/log/installer/initial-status.gz
/var/log/dpkg.log (+ ротированные куски)
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить5. Как посмотреть список файлов в пакете? если пакет установлен # dpkg -L package_nameдля любых пакетов поставить apt-file и # apt-file list package_name6. Как посмотреть какому пакету принадлежит файл? # dpkg -S file_name7. Как удалить все пакеты, где есть key в названии пакета? # sudo aptitude purge ~ikey8. Как удалить оставшиеся конфиги от удалённых пакетов? # sudo aptitude purge ~c9. Как найти пакет пакет, в котором содержится файл lib.so: # apt-file search lib.so10. Как сконвертировать rpm пакет в deb? # alien --to-deb /path/to/file.rpm11. Как найти список установленных ядер? # dpkg --list linux-* | grep ii12. Как установить пакет из testing или experimental? На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть # sudo aptitude -t testing package_nameили # sudo aptitude package_name/testing13. Как удалить метапакет, но оставить одну из зависимостей? придётся почитать документацию про ключ unmarkauto или глянуть сюда. 14. Как узнать что попало в файловую систему мимо системы управления пакетами? Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт # sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp15. Какие есть дополнительные репозитории? Ubuntu - множество всяких PPA 16. Что есть ещё? apt-cdrom apt-spy auto-apt. заметка на хабре apt-key apt-add-repository Некоторые вещи умеет только apt-get Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит. Главная > Операционные системы > UNIX > Linux > Debian |