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

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

2322
задан 8 June 2016 в 20:48

24 ответа

Ubuntu 14.04 и выше

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

apt list --installed

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

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

dpkg --get-selections | grep -v deinstall

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

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

dpkg --get-selections | grep postgres

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

dpkg -l

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

2527
ответ дан 8 June 2016 в 20:48

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

0
ответ дан 8 June 2016 в 20:48

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

dpkg-query --list >> installed_packages.txt
16
ответ дан 8 June 2016 в 20:48

Следующая команда также перечислит все установленные пакеты,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
18
ответ дан 8 June 2016 в 20:48

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

sudo apt install dctrl-tools

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

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

См.: man dctrl-tools

1
ответ дан 8 June 2016 в 20:48

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

36
ответ дан 8 June 2016 в 20:48

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

apt-cache pkgnames

Подробнее info, запустите apt-cache --help :

**apt-cache is a low-level tool used to query information
from APT's binary cache files

Commands:
   gencaches - Build both the package and source cache
   showpkg - Show some general information for a single package
   showsrc - Show source records
   stats - Show some basic statistics
   dump - Show the entire file in a terse form
   dumpavail - Print an available file to stdout
   unmet - Show unmet dependencies
   search - Search the package list for a regex pattern
   show - Show a readable record for the package
   depends - Show raw dependency information for a package
   rdepends - Show reverse dependency information for a package
   pkgnames - List the names of all packages in the system
   dotty - Generate package graphs for GraphViz
   xvcg - Generate package graphs for xvcg
   policy - Show policy settings

Options:
  -h   This help text.
  -p=? The package cache.
  -s=? The source cache.
  -q   Disable progress indicator.
  -i   Show only important deps for the unmet command.
  -c=? Read this configuration file
  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp
See the apt-cache(8) and apt.conf(5) manual pages for more information.
**
27
ответ дан 8 June 2016 в 20:48

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

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

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

3
ответ дан 8 June 2016 в 20:48

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

Сохраненный из него файл может быть загружен на новую машину с помощью "file/read markings" в Synaptic.

37
ответ дан 8 June 2016 в 20:48

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

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

или

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

или

dpkg --get-selections > 1.txt

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

40
ответ дан 8 June 2016 в 20:48

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

Для установки:

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 , что, безусловно, необходимо для установки некоторых установленных пакетов.

34
ответ дан 8 June 2016 в 20:48
apt-mark showmanual

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

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

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

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

apt-mark showmanual > list-manually-installed.txt
87
ответ дан 8 June 2016 в 20:48

Чтобы вывести список всех пакетов , намеренно установленных (не в качестве зависимостей) с помощью команд 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
...
231
ответ дан 8 June 2016 в 20:48

APT-Clone

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

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

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

APT-Clone используется повсеместно ] (Установщик 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)
     

Структура результата

Создает простой архивированный 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
32
ответ дан 8 June 2016 в 20:48

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

1. Senaraikan pakej perisian yang terpasang di Ubuntu

Untuk menyenaraikan pakej perisian yang terpasang pada mesin anda yang boleh anda gunakan perintah berikut:

 senarai apo sudo - dipasang
 

Output perintah akan sangat serupa dengan yang berikut, bergantung pada pakej mana yang sedang dipasang:

 Penyenaraian ...
acl / xenial, sekarang 2.2.52-3 amd64 [dipasang]
adduser / xenial, xenial, sekarang 3.113 + nmu3ubuntu4 semua [dipasang]
apache2 / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang]
apache2-bin / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang, automatik]
apache2-data / xenial-update, xenial-update, xenial-security, xenial-security, now 2.4.18-2ubuntu3.1 semua [dipasang, automatik]
apache2-doc / xenial-update, xenial-update, xenial-security, xenial-security, now 2.4.18-2ubuntu3.1 semua [dipasang]
apache2-utils / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang]
apparmor / xenial-kemas kini, sekarang 2.10.95-0ubuntu2.5 amd64 [dipasang, automatik]
apt / xenial-kemas kini, kini 1.2.19 amd64 [dipasang]
apt-utils / xenial-kemas kini, kini 1.2.19 amd64 [dipasang]
 ...
 

2. Gunakan program KURANG

Untuk membaca keseluruhan output dengan mudah, anda boleh menggunakan program kurang .

 senarai apo sudo - dipasang |  kurang
 

3. Gunakan Perintah GREP

Anda dapat mencari paket tertentu melalui output menggunakan grep program.

 sudo apt list - dipasang |  grep -i apache
 

4. Senaraikan semua pakej yang merangkumi Apache

Hasil dari arahan di atas akan menyenaraikan semua pakej yang termasuk apache dalam nama mereka.

 apache2 / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang]
apache2-bin / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang, automatik]
apache2-data / xenial-update, xenial-update, xenial-security, xenial-security, now 2.4.18-2ubuntu3.1 semua [dipasang, automatik]
apache2-doc / xenial-update, xenial-update, xenial-security, xenial-security, now 2.4.18-2ubuntu3.1 semua [dipasang]
apache2-utils / xenial-update, xenial-security, kini 2.4.18-2ubuntu3.1 amd64 [dipasang]
libapache2-mod-php / xenial, xenial, sekarang 1: 7.0 + 35ubuntu6 semua [dipasang, automatik]
libapache2-mod-php7.0 / xenial-kemas kini, kini 7.0.13-0ubuntu0.16.04.1 amd64 [dipasang, automatik]
libapache2-mod-security2 / xenial, kini 2.9.0-1 amd64 [dipasang]
libapache2-modsecurity / xenial, xenial, sekarang 2.9.0-1 semua [dipasang]
 

Apt menyokong corak untuk memadankan nama pakej dan pilihan untuk disenaraikan dipasang (- dipasang) pakej, boleh ditingkatkan (- boleh ditingkatkan) pakej atau semua tersedia (- semua versi) versi pakej.

5. Gunakan program DPKG

Alternatif lain yang boleh anda gunakan untuk menyenaraikan perisian yang dipasang pakej pada Ubuntu VPS anda adalah arahan dpkg .

 sudo dpkg -l
 

Keluaran arahan akan memberi anda maklumat seperti nama pakej, versi, seni bina dan keterangan ringkas mengenai bungkusan itu. Sudah tentu, anda boleh menggunakan program grep sekali lagi untuk cari pakej tertentu.

 sudo dpkg -l |  grep -i apache
 

Output akan kelihatan seperti di bawah:

 ii apache2 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server
ii apache2-bin 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server (modul dan fail binari lain)
ii apache2-data 2.4.18-2ubuntu3.1 semua Server HTTP Apache (fail biasa)
ii apache2-doc 2.4.18-2ubuntu3.1 semua Apache HTTP Server (dokumentasi di tempat)
ii apache2-utils 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server (program utiliti untuk pelayan web)
rc apache2.2-common 2.2.22-6ubuntu5.1 amd64 Apache HTTP Server fail biasa
ii libapache2-mod-php 1: 7.0 + 35ubuntu6 semua pelayan, bahasa skrip HTML-embedded (modul Apache 2) (lalai)
rc libapache2-mod-php5 5.5.9 + dfsg-1ubuntu4.16 amd64 sisi pelayan, bahasa skrip tertanam HTML (modul Apache 2)
ii libapache2-mod-php7.0 7.0.13-0ubuntu0.16.04.1 amd64 sisi pelayan, bahasa skrip HTML-embedded (modul Apache 2)
ii libapache2-mod-security2 2.9.0-1 amd64 Mengetatkan keselamatan aplikasi web untuk Apache
ii libapache2-modsecurity 2.9.0-1 semua pakej peralihan Dummy
ii libapr1: amd64 1.5.2-3 amd64 Apache Perpustakaan Runtime Portable
ii libaprutil1: amd64 1.5.4-1build1 amd64 Apache Portable Runtime Utility Library
ii libaprutil1-dbd-sqlite3: amd64 1.5.4-1build1 amd64 Apache Perpustakaan Runtime Utility Portable - Pemacu SQLite3
ii libaprutil1-ldap: amd64 1.5.4-1build1 amd64 Apache Portable Runtime Utility Library - Pemacu LDAP
 .
 

Dengan persaingan tutorial ini, anda telah berjaya belajar bagaimana untuk menyenaraikan pakej yang dipasang di Ubuntu.

2
ответ дан 8 June 2016 в 20:48

Help out this community wiki - Добавляйте современные решения.


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

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

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

Установка Aptik очень проста. Выполните следующие действия:

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

  2. Update apt с помощью команды, приведенной ниже.
    sudo apt-get update

  3. Install Aptik используя:
    sudo apt-get install aptik

Aptik Migration Utility v16.5.2


20
ответ дан 8 June 2016 в 20:48

Полное изложение см .:

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

12179 на полпути по странице: dpkg --list

21
ответ дан 8 June 2016 в 20:48

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

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

dpkg -l | grep '^ii '
29
ответ дан 8 June 2016 в 20:48

Есть отличное объяснение 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 выполняет замену по ссылке). Затем вы можете использовать список для ввода 'dpkg --set-selections' и устанавливать пакеты с apt-get:

scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade

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

27
ответ дан 8 June 2016 в 20:48

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

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

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

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

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

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

  5. Щелкните по нему; вы получите список всех приложений. Выберите «установить» в приложении, которое вы хотите установить.

34
ответ дан 8 June 2016 в 20:48

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
43
ответ дан 8 June 2016 в 20:48

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

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 указывает на то, что пакет был явно установлен и не является просто зависимостью.

456
ответ дан 8 June 2016 в 20:48

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

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
201
ответ дан 8 June 2016 в 20:48

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

Если ваш пакет не может быть найден в 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).

4
ответ дан 22 November 2019 в 22:31

Другие вопросы по тегам:

Похожие вопросы: