Ответы:
Простейший способ - использование dpkg
, но он может показывать несколько посторонних пакетов и усекает длинные имена пакетов и номера версий:
dpkg -l
Чтобы вывести только правильно установленные пакеты, а не обрезать имена:
dpkg -l | grep '^ii'
Чтобы получить больше контроля над форматом вывода, вы можете использовать dpkg-query
:
dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Другая команда может быть:
apt-show-versions
Он также предоставляет вам информацию о состоянии пакета (обновлено, обновляется, ...) и о распространении источника (wheezy, jessie, ...). Можно легко отфильтровать пакеты, пришедшие из бэкпортов или других экзотических репозиториев.
Эта программа упакована отдельно. Установите его сначала с помощью:
apt-get install apt-show-versions
apt-mark showmanual
этим вы получите удобный и простой способ получения версий всех установленных вручную пакетов, см. также этот ответ Askubuntu apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Следующая команда выводит список пакетов с их версиями, и дополнительно позволяет вам настроить систему с такими же пакетами и версиями позже, используя pkg-selections.txt
сгенерированный здесь файл:
aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt
Каждая строка будет содержать имя пакета, версию и дополнительную букву «А», если пакет был установлен автоматически.
Источник: « Клонирование системы Debian - идентичные пакеты и версии ». Также содержит скрипт, который устанавливает систему из pkg-selections.txt
.
Чтобы вывести список имен каждого установленного пакета, введите от имени любого пользователя:
dpkg --get-selections
Вы получите такой вывод:
accountsservice install
aclinstall install
acpi-supportinstall install
acpidinstall install
...
Чтобы удалить ненужную строку символов «установить», вы можете использовать sed :
dpkg --get-selections | sed 's:install$::'
И если вы хотите сохранить его в файл с именем InstalledPackages , введите:
dpkg --get-selections | sed 's:install$::' > InstalledPackages
Если у вас нет доступа к работающей системе и у вас есть резервная копия корневого /
раздела, вы можете:
root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app
Теперь это /root/installed_app
содержит все установленные пакеты!