Как вывести список всех установленных пакетов - proUbuntu
1.8 тыс. голосов
/

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

Ответы [ 24 ]

2 тыс. голосов
/

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 или любые другие варианты здесь не нужны)

403 голосов
/

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

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

197 голосов
/

Чтобы вывести список всех пакетов , преднамеренно установленных (не как зависимости) с помощью команд 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
...
188 голосов
/

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

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
74 голосов
/
apt-mark showmanual

Состояние страниц man:

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

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

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

apt-mark showmanual > list-manually-installed.txt
41 голосов
/

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
39 голосов
/

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

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

или

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

или

dpkg --get-selections > 1.txt

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

35 голосов
/

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

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

34 голосов
/

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

33 голосов
/

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

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

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

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

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

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

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

...