Я хочу вывести список всех установленных пакетов в текстовый файл, чтобы я мог просмотреть его и выполнить массовую установку в другой системе. Как бы я это сделал?
Инструмент apt
на Ubuntu 14.04 и выше делает это очень легко.
apt list --installed
Чтобы получить список пакетов, установленных локально, сделайте это в вашем терминале:
dpkg --get-selections | grep -v deinstall
(Тэг -v
"инвертирует" grep для возврата несовпадающих строк)
Чтобы получить список установленных пакетов, сделайте это в вашем терминале:
dpkg --get-selections | grep postgres
Чтобы сохранить этот список в текстовый файл с именем пакетов
на вашем рабочем столе, сделайте это в вашем терминале: Или просто используйте
dpkg -l
(в качестве суперпользователя вам не нужно запускать ни одну из этих команд, поэтому здесь не нужны ни sudo
, ни любые другие варианты)
Есть много способов сделать это. Если вы используете CentOS, как я, вы можете использовать их: 1. yum list installed
2. rpm -qa
Чтобы сохранить список установленных пакетов в файл с именем installed_packsages.txt
, просто запустите:
dpkg-query --list >> installed_packages.txt
Следующая команда также перечислит все установленные пакеты,
grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
Пакет dctrl-tools
предоставляет инструмент grep-status
для получения списка пакетов, отмеченных как установленные в вашей системе:
sudo apt install dctrl-tools
Использование:
grep-status -FStatus -sPackage -n "install ok installed"
См.: man dctrl-tools
Я рекомендую использовать blueprint. Несмотря на то, что он предназначен для серверов, его также можно использовать и с настольных компьютеров. Он создаст скрипт оболочки/chef/puppet, который вы можете использовать для переустановки всех ваших пакетов.
Я удивлен, что команда 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. **
Мне кажется интересным обратить внимание на apt list --installed
или dpkg- questionery --list
на самом деле используйте файл с именем /var/lib/dpkg/status
, за которым находится вся информация о пакетах - борода.
Так что если вы хотите работать с суперрасширенным списком пакетов, используйте только cat /var/lib/dpkg/status
.
Примечание: Не изменяйте файл /var/lib/dpkg/status
.
Вы можете использовать Synaptic для сохранения текущего состояния установленных пакетов. В Synaptic установите флажок "Сохранять полное состояние, а не только изменения", введите имя файла для сохранения состояния, а также установите флажок "Сохранять полное состояние, а не только изменения".
Сохраненный из него файл может быть загружен на новую машину с помощью "file/read markings" в Synaptic.
Чтобы перечислить все установленные пакеты,
dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt
или
aptitude search -F '%p' '~i' > 1.txt
или
dpkg --get-selections > 1.txt
Замечание:
Получится результат 1. txt файл в вашей домашней папке или вы можете указать свой собственный путь.
Также есть инструмент под названием Aptik (в настоящее время проприетарный, и командная строка, и графический интерфейс), который может помочь вам просмотреть список всех установленных пакетов, с возможностью выбора / отмены выбора некоторых из них, создания резервной копии list, а затем восстановить тот же набор пакетов в другой системе.
Для установки:
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik
Дополнительная информация: https://teejeetech.in/aptik/
Как видно на снимке экрана, Aptik позволяет вам также создавать резервные копии и восстанавливать PPA , что, безусловно, необходимо для установки некоторых установленных пакетов.
apt-mark showmanual
страницы руководства указывают:
распечатает список установленных вручную пакетов
Таким образом, он должен просто предоставить список явно установленных пакетов (хотя он включает пакеты, которые были частью начальной установки по умолчанию) без всего зависимости, включенные из-за установки этих пакетов.
Чтобы вывести результат в текстовый файл:
apt-mark showmanual > list-manually-installed.txt
Чтобы вывести список всех пакетов , намеренно установленных (не в качестве зависимостей) с помощью команд 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
...
Этот пакет можно использовать для клонирования / восстановления пакетов в системе на основе apt.
- Он сохранит / восстановит пакеты, sources.list, связку ключей и автоматически устанавливаемые состояния.
- Он также может сохранять / восстанавливать больше не загружаемые пакеты с помощью dpkg-repack.
источник:
man apt-clone
APT-Clone используется повсеместно
] (Установщик Ubuntu) для процесса обновления. Это намного лучше, чем решение dpkg --get-selections
, потому что:
Установить
sudo apt-get install apt-clone
Сделать резервную копию
sudo apt-clone clone path-to / apt-clone-state-ubuntu - $ (lsb_release -sr) - $ (date +% F) .tar.gz
Восстановить резервную копию
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
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.
Help out this community wiki - Добавляйте современные решения.
Эта команда должна выполнить создание текстового файла, содержащего установленные пакеты:
dpkg -l | awk '{print $2}' > package_list.txt
Для выполнения массовой установки перечисленных пакетов вам нужно отредактировать 'package_list.txt'. Удалите странные строки в верхней части файла с помощью текстового редактора. Затем вы можете использовать эту команду для установки пакетов из созданного файла, используя:
xargs < package_list.txt apt-get install -y
Только если вы хотите, чтобы все текущие пакеты были установлены с помощью списка (который включает автоматически установленный и т.д.).
Выводите ответ '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 showmanual
, чтобы дать список пакетов, которые были вручную или изначально установлены с помощью Ubuntu. Мы захотим вывести это в файл, который будем называть просто "package-list.txt". Используйте эту команду, чтобы выполнить следующее:
apt-mark showmanual > package-list.txt
Ниже приведена команда, которую мы будем использовать для установки пакетов из файла "package_list.txt".
xargs < package_list.txt apt-get install -y
Утилита для упрощения переустановки программных пакетов после обновления/переустановки дистрибутивов на базе Ubuntu.
. [Launchpad | Aptik]
Для получения информации о Aptik, попробуйте посетить его официальную страницу, а для получения скриншота нажмите здесь или просмотрите конец этого раздела.
Установка Aptik очень проста. Выполните следующие действия:
Добавить PPA с:
sudo add-apt-repository -y ppa:teejee2008/ppa
Update apt с помощью команды, приведенной ниже.
sudo apt-get update
Install Aptik используя:
sudo apt-get install aptik
Полное изложение см .:
12179 на полпути по странице: dpkg --list
Вы можете посмотреть журнал apt
в / var / log / apt /
и журнал dpkg
в ] / var / log /
, и вы можете получить список установленных пакетов с помощью простой команды:
dpkg -l | grep '^ii '
Есть отличное объяснение 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
по вашему усмотрению.
Вы хотите переустановить пакеты сейчас, 12.04, верно?
Если да, то это очень просто. Вам понадобится «Учетная запись единого входа Ubuntu». (Создайте его перед переустановкой, чтобы ваша система синхронизировалась.)
Перейдите в Центр программного обеспечения и найдите параметр «Синхронизировать между компьютерами ...» в меню «Файл».
Когда вы щелкните по нему, вы увидите ваш компьютер зарегистрирован и список всех приложений на вашем компьютере.
Когда вы установите новый компьютер, этот компьютер будет считаться новым компьютером.
Вам просто нужно войти в свою учетную запись Ubuntu, и ваш предыдущий компьютер будет показано.
Щелкните по нему; вы получите список всех приложений. Выберите «установить» в приложении, которое вы хотите установить.
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
Чтобы получить только те пакеты, которые были специально установлены (а не просто установлены в качестве зависимостей), вы можете запустить
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
указывает на то, что пакет был явно установлен и не является просто зависимостью.
Создайте резервную копию пакетов, установленных в данный момент:
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
В дополнение к пакетам 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).