Как найти все пакеты в debian

Время на прочтение
3 мин

Количество просмотров 286K

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

Краткая справка 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-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. Как посмотреть список файлов в пакете?
если пакет установлен

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. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ 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). Замечания и дополнения приветствуются.

Иногда возникают ситуации, когда нужно узнать какие пакеты установлены в системе. Это может понадобиться если вы хотите сделать резервную копию установленных пакетов, проверить их целостность, перенести все пакеты в другую систему и для решения многих других задач. В Debian для этого можно использовать несколько методов.

В сегодняшней статье мы рассмотрим как посмотреть список установленных пакетов Debian с помощью терминала, в интерфейсе curses, а также в графическом интерфейсе. Такие списки можно использовать не только для резервного копирования, но и для того, чтобы просто перебрать и удалить ненужные программы, тем самым очистив систему от мусора.

Самый первый способ посмотреть установленные пакеты 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. Она похожа на предыдущий вариант, но немного проще. Такая команда отобразит все установленные пакеты вместе с информацией о них:

dpkg-query -l

Здесь тоже можно выбрать только имена пакетов с помощью опции -f:

dpkg-query -f '${binary:Package}n' -W

Третий метод — это утилита apt, которой мы привыкли пользоваться для установки приложений, она имеет команду list:

apt list --installed

Далее, можно отфильтровать только пакеты, имя которых содержит определенные символы:

apt list --installed | grep python

Мы более подробно рассматривали apt в статье установка пакетов в Debian. Еще одна интересная возможность apt — посмотреть какие пакеты были установлены вручную. Для этого наберите:

apt-mark showmanual

И еще один вариант с использованием apt:

apt-cache pkgnames

Утилита для управления пакетами aptitude тоже позволяет вывести список установленных пакетов:

aptitude search '~i!~M'

Также aptitude может работать в режиме curses, что очень удобно:

Последний способ посмотреть список установленных пакетов — это файл /var/lib/apt/extended_states. Это база данных, в которой содержится установленные программы debian в таком формате:

Package: имя_пакета
Architecture: архитектура
Auto-Installed: 0_или_1

cat /var/lib/apt/extended_states

Восстановление списка установленных пакетов

Многие пользователи создают список пакетов не просто чтобы посмотреть, а для будущего восстановления. Если вы делали список с помощью dpkg, то его можно очень просто восстановить в системе с помощью аналогичной команды:

sudo dpkg --clear-selections
$ sudo dpkg --set-selections < mylist.txt

Все очень просто. Чтобы установить пакеты после добавления их в список используйте команду:

sudo apt dselect-upgrade

Если же у вас просто есть список имен пакетов, то восстанавливать его нужно немного по-другому. Просто передайте все эти имена команде apt для установки:

xargs < mylist.txt apt install -y

Выводы

В этой статье мы рассмотрели как посмотреть список установленных пакетов Debian. Это может быть очень полезно и выполняется достаточно просто. Надеюсь, эта информация была полезной для вас.

На завершение видео про установку и удаление пакетов:

https://www.youtube.com/watch?v=qrPNkhaqi9U

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Иногда, необходимо найти установленный пакет или вывести список все установленных пакетов на вашем сервере Linux. Эта статья «Показать все установленные пакеты в Linux» поможет вам как найти все установленные пакеты на системах основанных на RedHat’s и Debian’s.

Показать все установленные пакеты в CentOS/RedHat/Fedora

Используйте следующую команду, чтобы вывести список всех установленных пакетов на CentOS/RedHat/Fedora:

# rpm -qa

или

# yum list installed

Если нужно найти конкретный установленный пакет, то можно использовать команду:

# rpm -qa | grep nginx

Показать все установленные пакеты в Ubuntu/Debian

Используйте следующую команду, чтобы вывести список всех установленных пакетов на Ubuntu и Debian:

# dpkg --get-selections

Если нужно найти конкретный установленный пакет, то можно использовать команду:

# dpkg --get-selections | grep nginx

Так же, можно использовать:

# dpkg --list

Для конкретного пакета, это будет выглядеть так:

# dpkg --list 'apache*'

Вот и все, очень просто и полезно. А я завершаю свою тему «Показать все установленные пакеты в Linux».

  • Архив новостей

    Архив новостей

  • Свежие записи

    • Pull/Push AWS ECR образов через AWS Route53 CNAME
      17.11.2021
    • openpgp: signature made by unknown entity в Terraform
      09.11.2021
    • Установка Terraformer в Unix/Linux
      31.05.2021
    • Установка ArgoCD в Unix/Linux
      06.01.2021
    • Установка tfswitch в Unix/Linux
      08.12.2020
  • Мета

    • Войти
    • Лента записей
    • Лента комментариев
    • WordPress.org

В этом руководстве мы объясним, как составить список и отфильтровать установленные пакеты в Debian. Мы также покажем вам, как проверить, установлен ли конкретный пакет, подсчитать установленные пакеты и узнать версию установленного пакета.

Знание того, как составить список установленных пакетов в вашей системе на основе Debian, может быть полезно в ситуациях, когда вам нужно установить те же пакеты на другой компьютер или если вы хотите переустановить свою систему.

Список установленных пакетов с помощью Apt

Apt — это интерфейс командной строки для системы управления пакетами, который сочетает в себе наиболее часто используемые функции из apt-get и apt-cache включая возможность перечисления установленных пакетов.

Чтобы вывести список всех пакетов, установленных в вашей системе, выполните следующую команду:

sudo apt list --installed
adduser/stable,now 3.115 all [installed]
apt/stable,now 1.4.8 amd64 [installed]
apt-listchanges/stable,now 3.10 all [installed]
apt-utils/stable,now 1.4.8 amd64 [installed]
autoconf/stable,now 2.69-10 all [installed]
automake/stable,now 1:1.15-6 all [installed]
autotools-dev/stable,now 20161112.1 all [installed,automatic]
base-files/stable,now 9.9+deb9u5 amd64 [installed]
base-passwd/stable,now 3.5.43 amd64 [installed]
bash/stable,now 4.4-5 amd64 [installed]

Команда отобразит список всех установленных пакетов, включая информацию о версиях пакетов и архитектуре. В крайнем правом столбце выходных данных показано, был ли пакет автоматически установлен как зависимость от другого пакета.

Поскольку список пакетов длинный, рекомендуется передать вывод по конвейеру команде less чтобы его было легче читать:

sudo apt list --installed | less

Чтобы узнать, установлен ли конкретный пакет, используйте команду grep для фильтрации вывода. Например, чтобы узнать, установлен ли пакет tmux в системе, введите:

sudo apt list --installed | grep tmux
tmux/stable,now 2.3-4 amd64 [installed]

Приведенный выше вывод показывает, что в вашей системе установлен tmux 2.3-4.

Список установленных пакетов с помощью dpkg-query

dpkg-query — это командная строка, которая может использоваться для отображения информации о пакетах, перечисленных в базе данных dpkg.

Чтобы получить список всех установленных пакетов, введите:

sudo dpkg-query -l | less

Команда отобразит список всех установленных пакетов, включая версии пакетов, архитектуру и краткое описание.

Вы можете отфильтровать вывод dpkg-query -l с помощью команды grep :

sudo dpkg-query -l | grep package_name_to_search

Создайте список всех установленных пакетов

Следующая команда сохранит список всех установленных пакетов в вашей системе Debian в файле с именем packages_list.txt :

sudo dpkg-query -f '${binary:Package}n' -W > packages_list.txt

Теперь, когда у вас есть список, вы можете установить те же пакеты на новый сервер с помощью:

sudo xargs -a packages_list.txt apt install

Подсчитайте количество установленных пакетов

Чтобы узнать, сколько пакетов установлено в вашей системе, вы можете использовать ту же команду, что и при создании списка пакетов, но вместо перенаправления вывода в файл вы можете передать его команде wc для подсчета строк:

sudo dpkg-query -f '${binary:Package}n' -W | wc -l

Вывод покажет количество установленных пакетов:

466

Выводы

В этом руководстве вы узнали, как составлять список и фильтровать установленные пакеты в вашей системе Debian.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

APT или Advanced Package Tool – это программный инструмент, используемый для установки, обновления и удаления пакетов в системах на основе Debian.

Это менеджер пакетов по умолчанию в системах на основе Ubuntu и Debian.

Apt, apt-get и apt-cache – это часто используемые команды для управления пакетами и конфигурацией в системе.

Apt не предоставляет никаких команд для вывода списка доступных пакетов в конкретном репозитории.

Но вы можете найти список из файла кеша, который содержит список доступных пакетов для этого репозитория с другими деталями.

Это руководство поможет вам найти все доступные пакеты в репозитории в Ubuntu и других системах на основе Debian.

Как найти сведения о пакетах в репозитории

Apt хранит все файлы кеша репозитория в каталоге /var/lib/apt/lists.

Итак, сначала обновите apt-кеш в вашей системе

sudo apt-get update 

Теперь перейдите в каталог /var/lib/apt/lists.

Затем найдите файл с именем, путем и архитектурой репозитория, который заканчивается на _Packages внутри имени.

См. Содержимое * _Packages, чтобы просмотреть подробную информацию обо всех пакетах, доступных в этом репозитории.

Чтобы вывести список пакетов, доступных только в файле, выполните следующие действия:

grep -h -P -o "^Package: K.*" /var/lib/apt/lists/ppa.launchpad.net_*_Packages | sort -u 

Понравилась статья? Поделить с друзьями:
  • Как найти не работающую свечу
  • Как найти минор второго порядка матрицы
  • Как найти среднее квадратическое ожидание
  • Как найти номер в экселе быстро
  • Как найти файлы после очистки корзины