Apt-кеш: Як перелічити всі встановлені пакети з номером версії?


51

apt-cache dump --installed не працює, він також містить список видалених пакетів.

Я хочу перерахувати пакети встановлення кожен по одному рядку із номером встановленої версії.


3
bug # 775771 обмежити результати пошуку apt-cache встановленими пакетами
bartolo-otrit

Відповіді:


53

спробуйте dpkg -l

в ньому перераховані пакети, версія та короткий опис.


1
Мені також подобається, apt-show-versionsоскільки він також показує, який саме uptotdate.
малат

37

Найпростіший спосіб - це використання dpkg, але він може відображати кілька сторонніх пакетів, і він скорочує довгі назви пакунків та номери версій:

dpkg -l

Щоб перерахувати лише правильно встановлені пакети, а не усікати імена:

dpkg -l | grep '^ii'

Щоб отримати більше контролю над вихідним форматом, ви можете використовувати dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'

13

Іншою командою може бути:

apt-show-versions

Він також дає вам інформацію про стан пакету (оновлений, оновлений, ...) та про розповсюдження походження (wheezy, jessie, ...). Можна легко відфільтрувати пакунки, що надійшли з резервних портів чи інших екзотичних сховищ.

Ця програма упаковується окремо. Встановіть його спочатку за допомогою:

apt-get install apt-show-versions

Це дійсно приємно, оскільки показує версію, до якої пакет міг бути оновлений. +1.
Randall Cook

у поєднанні з apt-mark showmanualцим ви отримуєте приємний і простий спосіб отримати версії всіх встановлених вручну пакетів, дивіться також цю відповідь Askubuntu apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Грегор

4

Наступна команда перераховує пакети з їх версіями, а також додатково дозволяє налаштувати систему з тими ж пакетами та версіями пізніше, використовуючи pkg-selections.txtстворений тут файл:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Кожен рядок буде містити назву пакета, версію та необов'язковий "A", якщо пакет був встановлений автоматично.

Джерело: " Клонування системи Debian - однакові пакети та версії ". Також містить скрипт, який налаштовує систему з pkg-selections.txt.


4

Щоб перелічити імена кожного встановленого пакета, введіть будь-якого користувача:

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

1

Якщо у вас немає доступу до живої системи та маєте резервну копію кореневого /розділу, ви можете:

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містить усі встановлені пакети!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.