- Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами
- Краткая справка Debian администратора
- Команды apt в Linux
- Обновление индекса пакета ( apt update )
- Обновление пакетов ( apt upgrade )
- Полное обновление ( apt full-upgrade )
- Установка пакетов ( apt install )
- Удаление пакетов ( apt remove )
- Удалить неиспользуемые пакеты ( apt autoremove )
- Список пакетов ( apt list )
- Поиск пакетов ( apt search )
- Информация о пакете ( apt show )
- Список установленных пакетов Debian
- Список установленных пакетов Debian
- Восстановление списка установленных пакетов
- Выводы
Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Краткая справка Debian администратора
Основное и общеизвестное
sudo aptitude safe-upgrade
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
А теперь то что не очевидно или требует полного прочтения документации
aptitude search ?upgradable
но после его установки точно также будет себя вести и обычный update
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’), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов
/var/log/aptitude (+ ротированные куски) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ ротированные куски)
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить
5. Как посмотреть список файлов в пакете?
если пакет установлен
apt-file list package_name
alien --to-deb /path/to/file.rpm
12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
sudo aptitude -t testing package_name
sudo aptitude package_name/testing
13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда.
14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт
sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp
15. Какие есть дополнительные репозитории?
Debian — wiki.debian.org/UnofficialRepositories
Ubuntu — множество всяких PPA
16. Что есть ещё?
apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository
Некоторые вещи умеет только apt-get
Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.
17. Как найти пакеты зависящие от данного
apt-cache rdepends package_name
aptitude why package_name
Благодарю всех кто помог своими советами в рассылке, жж (JackYF) и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao, traaance, adrianopol, Karamax). Замечания и дополнения приветствуются.
Команды apt в Linux
apt — это утилита командной строки для установки, обновления, удаления и иного управления пакетами deb в Ubuntu, Debian и связанных с ними дистрибутивах Linux. Он сочетает в себе наиболее часто используемые команды из инструментов apt-get и apt-cache с разными значениями по умолчанию некоторых параметров.
apt предназначен для интерактивного использования. Отдавайте предпочтение сценариям apt-get и apt-cache в вашей оболочке, поскольку они обратно совместимы между различными версиями и имеют больше параметров и функций.
Большинство apt команд необходимо запускать от имени пользователя с sudo привилегиями.
В этом руководстве вы можете узнать все о apt командах в Linix системе.
Обновление индекса пакета ( apt update )
Индекс пакетов APT — это, по сути, база данных, в которой хранятся записи о доступных пакетах из репозиториев, включенных в вашей системе.
Чтобы обновить индекс пакета, выполните команду ниже. Это вытянет последние изменения из репозиториев APT:
Всегда обновляйте индекс пакетов перед обновлением или установкой новых пакетов.
Обновление пакетов ( apt upgrade )
Регулярное обновление вашей системы Linux является одним из наиболее важных аспектов общей безопасности системы.
Чтобы обновить установленные пакеты до последних версий, запустите:
Команда не обновляет пакеты, требующие удаления установленных пакетов.
Если вы хотите обновить один пакет, передайте имя пакета:
sudo apt upgrade package_name
Полное обновление ( apt full-upgrade )
Разница между upgrade и full-upgrade заключается в том, что последний удалит установленные пакеты, если это необходимо для обновления всей системы.
Будьте особенно осторожны при использовании этой команды.
Установка пакетов ( apt install )
Установка пакетов так же проста, как запуск следующей команды:
sudo apt install package_name
Если вы хотите установить несколько пакетов одной командой, укажите их в виде списка, разделенного пробелами:
sudo apt install package1 package2
Чтобы установить локальные файлы deb, укажите полный путь к файлу. В противном случае команда попытается получить и установить пакет из репозиториев APT.
sudo apt install /full/path/file.deb
Удаление пакетов ( apt remove )
Чтобы удалить установленный пакет, введите следующее:
sudo apt remove package_name
Вы также можете указать несколько пакетов, разделенных пробелами:
sudo apt remove package1 package2
Команда remove удалит указанные пакеты, но может оставить некоторые файлы конфигурации. Если вы хотите удалить пакет, включая все файлы конфигурации, используйте purge вместо remove :
sudo apt purge package_name
Удалить неиспользуемые пакеты ( apt autoremove )
Всякий раз, когда в системе устанавливается новый пакет, который зависит от других пакетов, зависимости пакета также будут установлены. Когда пакет будет удален, зависимости останутся в системе. Эти оставшиеся пакеты больше ничем не используются и могут быть удалены.
Список пакетов ( apt list )
Команда list позволяет вам перечислить доступные, установленные и обновляемые пакеты.
Чтобы просмотреть все доступные пакеты, используйте следующую команду:
Команда напечатает список всех пакетов, включая информацию о версиях и архитектуре пакета. Чтобы узнать, установлен ли конкретный пакет, вы можете отфильтровать вывод с помощью grep команды.
sudo apt list | grep package_name
Чтобы перечислить только установленные пакеты , введите:
Получение списка обновляемых пакетов может быть полезно перед фактическим обновлением пакетов:
sudo apt list --upgradeable
Поиск пакетов ( apt search )
Эта команда позволяет вам искать данный пакет в списке доступных пакетов:
sudo apt search package_name
Если найдено, команда вернет пакеты, имя которых соответствует поисковому запросу.
Информация о пакете ( apt show )
Информация о зависимостях пакета, размере установки, источнике пакета и т. д. может быть полезна перед удалением или установкой нового пакета.
Чтобы получить информацию о данном пакете, используйте show команду:
sudo apt show package_name
Список установленных пакетов Debian
Иногда возникают ситуации, когда нужно узнать какие пакеты установлены в системе. Это может понадобиться если вы хотите сделать резервную копию установленных пакетов, проверить их целостность, перенести все пакеты в другую систему и для решения многих других задач. В Debian для этого можно использовать несколько методов.
В сегодняшней статье мы рассмотрим как посмотреть список установленных пакетов Debian с помощью терминала, в интерфейсе curses, а также в графическом интерфейсе. Такие списки можно использовать не только для резервного копирования, но и для того, чтобы просто перебрать и удалить ненужные программы, тем самым очистив систему от мусора.
Список установленных пакетов Debian
Самый первый способ посмотреть установленные пакеты Debian, это утилита dpkg. Она может применяться не только в Debian, а во всех, основанных на нем дистрибутивах:
dpkg —get-selections | grep -v deinstall
Полученный список можно сразу же сохранить в файл, чтобы потом его использовать:
dpkg —get-selections | grep -v deinstall > mylist.txt
Можно также убрать всю лишнюю информацию и сохранить только имена пакетов:
dpkg -l | grep ^ii | awk ‘< print $2>‘ > mylist.txt
Следующий способ решения этой задачи — использование утилиты dpkg-query. Она похожа на предыдущий вариант, но немного проще. Такая команда отобразит все установленные пакеты вместе с информацией о них:
Здесь тоже можно выбрать только имена пакетов с помощью опции -f:
Третий метод — это утилита apt, которой мы привыкли пользоваться для установки приложений, она имеет команду list:
Далее, можно отфильтровать только пакеты, имя которых содержит определенные символы:
apt list —installed | grep python
Мы более подробно рассматривали apt в статье установка пакетов в Debian. Еще одна интересная возможность apt — посмотреть какие пакеты были установлены вручную. Для этого наберите:
И еще один вариант с использованием apt:
Утилита для управления пакетами aptitude тоже позволяет вывести список установленных пакетов:
Также aptitude может работать в режиме curses, что очень удобно:
Последний способ посмотреть список установленных пакетов — это файл /var/lib/apt/extended_states. Это база данных, в которой содержится установленные программы debian в таком формате:
Package: имя_пакета
Architecture: архитектура
Auto-Installed: 0_или_1
Восстановление списка установленных пакетов
Многие пользователи создают список пакетов не просто чтобы посмотреть, а для будущего восстановления. Если вы делали список с помощью dpkg, то его можно очень просто восстановить в системе с помощью аналогичной команды:
sudo dpkg —clear-selections
$ sudo dpkg —set-selections < mylist.txt
Все очень просто. Чтобы установить пакеты после добавления их в список используйте команду:
Если же у вас просто есть список имен пакетов, то восстанавливать его нужно немного по-другому. Просто передайте все эти имена команде apt для установки:
Выводы
В этой статье мы рассмотрели как посмотреть список установленных пакетов Debian. Это может быть очень полезно и выполняется достаточно просто. Надеюсь, эта информация была полезной для вас.
На завершение видео про установку и удаление пакетов:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.