it-swarm.com.ru

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

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

1816
Ivan

Ubuntu 14.04 и выше

Инструмент apt в Ubuntu 14.04 и выше делает это очень просто.

apt list --installed

Старые версии

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

dpkg --get-selections | grep -v deinstall

(Тег -v "инвертирует" grep для возврата несовпадающих строк)

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

dpkg --get-selections | grep postgres

Чтобы сохранить этот список в текстовом файле с именем packages на рабочем столе, сделайте это в своем терминале:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

В качестве альтернативы просто используйте

dpkg -l

(вам не нужно запускать ни одну из этих команд в качестве суперпользователя, поэтому нет Sudo или каких-либо других вариантов, необходимых здесь)

2048
Sabacon

Чтобы получить только те пакеты, которые были явно установлены (а не просто установлены как зависимости), вы можете запустить

aptitude search '~i!~M'

Это также будет включать краткое описание, которое вы можете захотеть. Если нет, также добавьте параметр -F '%p', как упомянуто karthick87.


Еще один вариант - скопировать файл /var/lib/apt/extended_states, который представляет собой базу данных текстовых файлов в этом формате:

Package: grub-common
Architecture: AMD64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: AMD64
Auto-Installed: 1

Auto-Installed: 0 указывает, что пакет был явно установлен и является не просто зависимостью.

406
intuited

Чтобы вывести список всех пакетов преднамеренно установленных (не как зависимостей) с помощью команд apt, выполните следующее:

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep '^Commandline:'

Это обеспечивает представление на основе обратного времени, причем более старые команды перечислены первыми:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Установочные данные также показывают использование синапсов, но без подробностей (то же самое с датой установки):

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep -B1 '^Commandline:'

предоставляя следующее:

Start-Date: 2012-09-23  14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23  15:02:51
Commandline: apt-get install sysstat
...
199
bcl

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

dpkg --get-selections > list.txt

Затем (в другой системе) восстановите установки из этого списка:

dpkg --clear-selections
Sudo dpkg --set-selections < list.txt

Чтобы избавиться от устаревших пакетов:

Sudo apt-get autoremove

Чтобы установить как во время резервного копирования (то есть, чтобы установить пакеты, установленные dpkg --set-selections):

Sudo apt-get dselect-upgrade
190
gogaman
apt-mark showmanual

страницы руководства:

распечатает список установленных вручную пакетов

Таким образом, он должен просто предоставить список явно установленных пакетов (хотя это включает в себя пакеты, которые были частью начальной установки по умолчанию) без учета всех зависимостей, связанных с установкой этих пакетов.

Чтобы вывести результат в текстовый файл:

apt-mark showmanual > list-manually-installed.txt
74
Tim Tisdall

dpkg-query (вместо dpkg --get-selections, в котором перечислены некоторые пакеты, которые не установлены) следующим образом:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Или же:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs
41
kyleN

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

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

или же

aptitude search -F '%p' '~i' > 1.txt

или же

dpkg --get-selections > 1.txt

Примечание:
Вы получите файл результата 1.txt в своей домашней папке или можете указать свой собственный путь.

39
karthick87

Вы можете использовать Synaptic, чтобы сохранить текущее состояние установленного пакета. В Synaptic выберите "файл/сохранить метки", введите имя файла, в который нужно сохранить состояние, и обязательно установите флажок "Сохранить полное состояние, а не только изменения".

Сохраненный из этого файл может быть загружен на новый компьютер с помощью "маркировки файла/чтения" в Synaptic.

35
Nerdfest

Я рекомендую использовать план . Несмотря на то, что он предназначен для серверов, он также может использоваться с настольных компьютеров. Он создаст скрипт Shell/chef/puppet, который вы сможете использовать для переустановки всех ваших пакетов.

34
Tamer

Вы хотите переустановить пакеты сейчас там 12.04, верно?

Если это так, это очень легко. Вам понадобится учетная запись Ubuntu Single Sign On. (Создайте его перед переустановкой, чтобы ваша система синхронизировалась.)

  1. Перейдите в Центр программного обеспечения и найдите пункт "Синхронизировать между компьютерами ..." в меню "Файл".

  2. Когда вы нажмете на нее, вы увидите, что ваш компьютер зарегистрирован и список всех приложений на вашем компьютере.

  3. Когда вы установите новую версию, этот компьютер будет считаться новым компьютером.

  4. Вы просто должны войти в свою учетную запись Ubuntu, и ваш предыдущий компьютер будет показан.

  5. Нажмите здесь; вы получите список всех приложений. Выберите "установить" в приложении, которое вы хотите установить.

33
Nirmik

Есть также инструмент под названием Aptik (как с командной строкой, так и с графическим интерфейсом), который может помочь вам просмотреть список всех установленных пакетов с возможностью выбора/отмены выбора некоторые из них, сделать резервную копию списка, а затем восстановить тот же набор пакетов в другой системе.

Установить:

Sudo add-apt-repository -y ppa:teejee2008/ppa
Sudo apt-get update
Sudo apt-get install aptik

Дополнительная информация: https://teejeetech.in/aptik/

enter image description here

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

32
Sadi

APT-Clone . Этот пакет можно использовать для клонирования/восстановления пакетов в системе на основе apt.

  • Это сохранит/восстановит пакеты, sources.list, связку ключей и автоматически установленные состояния.
  • Он также может сохранять/восстанавливать уже не загружаемые пакеты, используя dpkg-repack.

источник: man apt-clone

APT-Clone используется ubiquity (установщик Ubuntu) для процесса обновления. Это намного лучше, чем решение dpkg --get-selections, потому что:

  1. Сохраняет всю информацию о хранилищах.
  2. Он отслеживает, какие пакеты были автоматически установлены.
  3. Позволяет перепаковывать локально установленные файлы DEB.

Как использовать

  1. Устанавливать

    Sudo apt-get install apt-clone
    
  2. Сделать резервную копию

    Sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Восстановление резервной копии

    Sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Восстановить до новой версии:

    Sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

Это делает простой GZIP-файл tar, который можно легко редактировать и просматривать перед восстановлением на других машинах. Вот пример его структуры:

/
├── etc
│   └── apt
│       ├── preferences.d
│       ├── sources.list
│       ├── sources.list.d
│       │   ├── anton_-ubuntu-dnscrypt-vivid.list
│       │   ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│       │   └── megasync.list
│       ├── trusted.gpg
│       └── trusted.gpg.d
│           ├── anton__ubuntu_dnscrypt.gpg
│           ├── anton__ubuntu_dnscrypt.gpg~
│           ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│           └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
    └── lib
        └── apt-clone
            ├── extended_states
            ├── installed.pkgs
            └── uname
30
user.dz

Есть отличное объяснение Unix StackExchange , которое описывает, как использовать aptitude для вывода списка пакетов, не установленных как зависимости, и как сравнить этот список со списком пакетов по умолчанию для вашего выпуска Ubuntu.

Чтобы получить файл манифеста для настольных версий 12.04 и новее, зайдите на этот сайт , выберите свою версию и прокрутите вниз под образами компакт-дисков раздел файлов. Вы найдете что-то вроде "ubuntu-12.04.4-desktop-AMD64 + mac.manifest", которое соответствует вашей архитектуре.

Для версий сервера вам необходимо получить файл манифеста из ISO, который использовался для установки исходной системы. Для VPS или облачного сервера ваш провайдер может предоставить доступ к изображениям или вам может потребоваться связаться с ними.

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

Старый сервер (код из другого поста, вывод сохранен в файл):

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-AMD64.manifest \
  | cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list

На новом сервере скопируйте файл с помощью scp, а затем с помощью sed добавьте 'install' к каждой строке (-i выполняет inline-replace). Затем вы можете использовать список в качестве входных данных для 'dpkg --set-selections' и установить пакеты с помощью apt-get:

scp [email protected]:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
Sudo dpkg --set-selections < user-installed.list
Sudo apt-get dselect-upgrade

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

26
thinkmassive

Вы можете просмотреть журнал apt в /var/log/apt/ и журнал dpkg в /var/log/

и вы можете получить список установленных пакетов с помощью команды:

dpkg -l | grep '^ii '
25
Maythux

Я удивлен, что команда apt-cache, разработанная именно для этой цели не упоминалась выше ...

apt-cache pkgnames

Для получения дополнительной информации запустите apt-cache --help:

 ** apt-cache - это низкоуровневый инструмент, используемый для запроса информации 
 из файлов двоичного кэша APT 
 
 Команды: 
 gencaches - Build и пакет, и исходный кеш 
 showpkg - Показать некоторую общую информацию для одного пакета 
 showrc - Показать исходные записи 
 stats - Показать некоторую базовую статистику 
 dump - Показать Весь файл в краткой форме 
 dumpavail - Распечатать доступный файл в stdout 
 unmet - Показать неудовлетворенные зависимости 
 search - Искать в списке пакетов шаблон регулярных выражений 
 show - Показать читаемую запись для пакета 
 зависит - Показать необработанную информацию о зависимости для пакета 
 rdepends - Показать информацию об обратной зависимости для пакета 
 pkgnames - список имен всех пакетов в системе
 dotty - Создание графиков пакетов для GraphViz 
 xvcg - Создание графиков пакетов для политики xvcg 
 - Отображение параметров политики 
 
 Параметры: 
 -h Это текст справки. 
 -p =? Кеш пакета. 
 -S =? Исходный кеш. 
 -Q Отключить индикатор выполнения. 
 -I Показывать только важные команды для команды unmet. 
 -C =? Прочитайте этот файл конфигурации 
 -O =? Установите произвольную опцию конфигурации, например, -o dir :: cache =/tmp 
 Для получения дополнительной информации см. Справочные страницы apt-cache (8) и apt.conf (5). 
 ** 
23
ostrokach

Для полного изложения см:

https://help.ubuntu.com/community/SwitchingToUbuntu/FromLinux/RedHatEnterpriseLinuxAndFedora#Command_Line_Tools

половина пути через страницу:

dpkg --list

20
adriano72

Команда ниже также выведет список всех установленных пакетов,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
18
Avinash Raj

Помогите вики сообщества - добавьте актуальные решения.


dpkg, xargs, & apt-get

Эта команда должна завершить создание текстового файла, содержащего установленные пакеты:

dpkg -l | awk  '{print $2}' > package_list.txt

Для выполнения массовой установки перечисленных пакетов вам необходимо отредактировать файл package_list.txt. Удалите странные строки в верхней части файла с помощью текстового редактора. Затем вы можете использовать эту команду для установки пакетов из созданного файла, используя:

xargs < package_list.txt apt-get install -y

apt-cache, xargs, & apt-get

Используйте этот метод, только если вы хотите установить все текущие пакеты, используя список (, который включает автоматически устанавливается и т. д.).

Выведите ответ "apt-cache pkgnames" в файл, который мы просто назовем "package_list.txt". Вы можете сделать это с помощью:

apt-cache pkgnames > package_list.txt

Затем, когда вы хотите установить пакеты из "package_list.txt", вы должны использовать эту команду:

xargs < package_list.txt apt-get install -y

apt-mark, xargs, & apt-get

Мы можем использовать команду apt-mark showmanual, чтобы получить список пакетов, которые были вручную или изначально установлены с Ubuntu. Мы хотим вывести это в файл, который мы будем называть "package-list.txt". Используйте эту команду для выполнения этого:

apt-mark showmanual > package-list.txt

Команда, которую мы будем использовать для установки пакетов из файла "package_list.txt", приведена ниже.

xargs < package_list.txt apt-get install -y

Aptik Migration Utility

Утилита для упрощения переустановки пакетов программного обеспечения после обновления/переустановки дистрибутивов на основе Ubuntu.
[ Launchpad | Aptik ]

Для получения информации о Aptik, попробуйте посетить его официальная страница, и для скриншота нажмите здесь или просмотреть конец этого раздела.

Установка Aptik проста. Следуй этим шагам:

  1. Добавить PPA с:
    Sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Обновите apt с помощью приведенной ниже команды.
    Sudo apt-get update

  3. Установите Aptik, используя:
    Sudo apt-get install aptik

Aptik Migration Utility v16.5.2


17
David your friend

Чтобы сохранить список установленных пакетов в файл с именем installed_packages.txt, просто запустите:

dpkg-query --list >> installed_packages.txt
16
wb9688

Я думаю, что интересно отметить, что apt list --installed или dpkg-query --list на самом деле используют файл с именем /var/lib/dpkg/status позади, где вся информация о пакетах бороды.

Так что если вы хотите иметь дело с супер расширенным списком пакетов, просто cat /var/lib/dpkg/status.

Примечание. Не изменяйте файл /var/lib/dpkg/status.

3
prosti

В дополнение к APT пакетам, многие пакеты GUI в настоящее время распространяются как snaps .

Если ваш пакет не найден в apt list --installed, попробуйте snap list :

$ snap list

Name                  Version                     Rev   Tracking  Publisher       Notes
gimp                  2.10.10                     165   stable    snapcrafters    -
gnome-calculator      3.32.1                      406   stable/…  canonical✓      -
keepassxc             2.4.1                       267   stable    keepassxreboot  -
...

Также неплохо добавить /snap/bin в PATH, чтобы вы могли запускать их из терминала (это делается автоматически для пользователей без полномочий root).

3
rustyx

https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :

1. Перечислите установленные пакеты программного обеспечения в Ubuntu

Для просмотра списка установленных пакетов программного обеспечения на вашем компьютере вы можете использовать следующую команду:

Sudo apt list --installed

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

Listing...
acl/xenial,now 2.2.52-3 AMD64 [installed]
adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
Apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
Apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed,automatic]
Apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
Apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
Apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 AMD64 [installed,automatic]
apt/xenial-updates,now 1.2.19 AMD64 [installed]
apt-utils/xenial-updates,now 1.2.19 AMD64 [installed]
...

2. Используйте программу LESS

Чтобы легко прочитать весь вывод, вы можете использовать программу less.

Sudo apt list --installed | less

3. Используйте команду GREP

Вы можете найти определенный пакет через вывод, используя программу grep.

Sudo apt list --installed | grep -i Apache

4. Перечислите все пакеты, которые включают Apache

В результате выполнения вышеприведенной команды будут перечислены все пакеты, которые включают в себя Apache.

Apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
Apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed,automatic]
Apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
Apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
Apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic]
libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 AMD64 [installed,automatic]
libapache2-mod-security2/xenial,now 2.9.0-1 AMD64 [installed]
libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]

Apt поддерживает шаблоны для соответствия именам пакетов и опциям для отображения списка установленных пакетов (--installed), обновляемых пакетов (--upgradeable) или всех доступных версий пакетов (--all-versions).

5. Используйте программу DPKG

Другой альтернативой, которую вы можете использовать для вывода списка установленных пакетов программного обеспечения на вашем Ubuntu VPS , является команда dpkg.

Sudo dpkg -l

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

Sudo dpkg -l | grep -i Apache

Вывод должен выглядеть следующим образом:

ii  Apache2                       2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server
ii  Apache2-bin                   2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server (modules and other binary files)
ii  Apache2-data                  2.4.18-2ubuntu3.1                     all          Apache HTTP Server (common files)
ii  Apache2-doc                   2.4.18-2ubuntu3.1                     all          Apache HTTP Server (on-site documentation)
ii  Apache2-utils                 2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server (utility programs for web servers)
rc  Apache2.2-common              2.2.22-6ubuntu5.1                     AMD64        Apache HTTP Server common files
ii  libapache2-mod-php            1:7.0+35ubuntu6                       all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
rc  libapache2-mod-php5           5.5.9+dfsg-1ubuntu4.16                AMD64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0         7.0.13-0ubuntu0.16.04.1               AMD64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-security2      2.9.0-1                               AMD64        Tighten web applications security for Apache
ii  libapache2-modsecurity        2.9.0-1                               all          Dummy transitional package
ii  libapr1:AMD64                 1.5.2-3                               AMD64        Apache Portable Runtime Library
ii  libaprutil1:AMD64             1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3:AMD64 1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-ldap:AMD64        1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library - LDAP Driver
.

В конкурсе этого руководства вы успешно научились составлять список установленных пакетов в Ubuntu.

3
M.A.K. Ripon

Пакет dctrl-tools предоставляет инструмент grep-status для получения списка пакетов, помеченных как установленные в вашей системе:

Sudo apt install dctrl-tools

Использование:

grep-status -FStatus -sPackage -n   "install ok installed"

смотрите: man dctrl-tools

1
GAD3R

Есть много способов сделать это. Если вы используете CentOS, как я, вы можете использовать их: 1. yum list installed 2. rpm -qa

1
saeed mohammadi