Я хотел бы вывести список всех установленных пакетов в текстовый файл, чтобы я мог просмотреть его и выполнить массовую установку в другой системе. Как бы я это сделал?
Я хотел бы вывести список всех установленных пакетов в текстовый файл, чтобы я мог просмотреть его и выполнить массовую установку в другой системе. Как бы я это сделал?
Ответы:
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
никаких других вариантов)
cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade
исходный код
sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
делает трюк.
Чтобы получить только те пакеты, которые были явно установлены (а не просто установлены как зависимости), вы можете запустить
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
указывает, что пакет был явно установлен и является не просто зависимостью.
apt-get
?
Чтобы вывести список всех пакетов, преднамеренно установленных (не как зависимости) с помощью команд 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
...
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??
Создайте резервную копию установленных пакетов:
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
ubuntu-desktop
его удалили - возможно, из-за одной из команд dpkg. будьте осторожны, мне потребовались часы, чтобы восстановить ущерб!
sudo apt-mark hold name-your-package
. Это предотвратит обновление apt-get до текущей версии, которая используется по умолчанию для процесса обновления.
apt-mark showmanual
Страницы руководства:
распечатает список установленных вручную пакетов
Таким образом, он должен просто предоставить список явно установленных пакетов (хотя это включает в себя пакеты, которые были частью начальной установки по умолчанию) без учета всех зависимостей, связанных с установкой этих пакетов.
Чтобы вывести результат в текстовый файл:
apt-mark showmanual > list-manually-installed.txt
apt-mark showmanual
не совсем. В нем также перечислены тонны автоматически установленных пакетов, вероятно, часть базовой установки.
apt list --manual-installed
.
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
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
во второй системе, я сделал это для установки пакетов.
apt-get install -y $(< installed-pkgs)
сделает так, чтобы apt-get запускался только один раз и одновременно заботился обо всех зависимостях.
sudo apt-get build-dep name-package; sudo apt-get install name-package;
?
Чтобы вывести список всех установленных пакетов,
dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt
или же
aptitude search -F '%p' '~i' > 1.txt
или же
dpkg --get-selections > 1.txt
Примечание:
вы получите файл 1.txt результата в вашей домашней папке или можете указать свой собственный путь.
Вы можете использовать Synaptic, чтобы сохранить текущее состояние установленного пакета. В Synaptic выберите «файл / сохранить метки», введите имя файла, в который нужно сохранить состояние, и обязательно установите флажок «Сохранить полное состояние, а не только изменения».
Сохраненный из этого файл может быть загружен на новый компьютер с помощью «маркировки файла / чтения» в Synaptic.
Я рекомендую использовать план . Несмотря на то, что он предназначен для серверов, он также может использоваться с настольных компьютеров. Он создаст скрипт оболочки / chef / puppet, который вы сможете использовать для переустановки всех ваших пакетов.
Вы хотите переустановить пакеты сейчас там 12.04, верно?
Если это так, это очень легко. Вам понадобится учетная запись Ubuntu Single Sign On. (Создайте его перед переустановкой, чтобы ваша система синхронизировалась.)
Перейдите в Центр программного обеспечения и найдите пункт «Синхронизировать между компьютерами ...» в меню «Файл».
Когда вы нажмете на нее, вы увидите, что ваш компьютер зарегистрирован и список всех приложений на вашем компьютере.
Когда вы установите новую версию, этот компьютер будет считаться новым компьютером.
Вы просто должны войти в свою учетную запись Ubuntu, и ваш предыдущий компьютер будет показан.
Нажмите здесь; вы получите список всех приложений. Выберите «установить» в приложении, которое вы хотите установить.
Существует также инструмент под названием Aptik (как с командной строкой, так и с графическим интерфейсом), который может помочь вам просмотреть список всех установленных пакетов, с возможностью выбрать / отменить выбор некоторых из них, создать резервную копию списка, а затем восстановить тот же набор пакетов в другая система.
Установить:
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik
Дополнительная информация: https://teejeetech.in/aptik/
Как видно на скриншоте, Aptik позволяет также выполнять резервное копирование и восстановление PPA , что, безусловно, будет необходимо для установки некоторых установленных пакетов.
apt-get install aptik-gtk
а также
APT-Clone . Этот пакет можно использовать для клонирования / восстановления пакетов в системе на основе apt.
- Это сохранит / восстановит пакеты, sources.list, связку ключей и автоматически установленные состояния.
- Он также может сохранять / восстанавливать уже не загружаемые пакеты, используя dpkg-repack.
источник:
man apt-clone
APT-Clone используется ubiquity
(установщик 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)
Это делает простой 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
В 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 user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade
Перед тем как приступить к выполнению этой задачи, я рекомендую прочитать и понять все части поста, упомянутого в начале, а затем обратиться к справочному руководству aptitude для получения подробной информации о шаблонах поиска.
Я удивлен, что apt-cache
команда, разработанная именно для этой цели , не была упомянута выше ...
apt-cache pkgnames
Для получения дополнительной информации запустите apt-cache --help
:
** apt-cache - инструмент низкого уровня, используемый для запроса информации из файлов двоичного кэша APT Команды: gencaches - сборка пакета и исходного кэша showpkg - показать некоторую общую информацию для одного пакета showrc - Показать исходные записи статистика - Показать некоторые основные статистические данные dump - Показать весь файл в краткой форме dumpavail - распечатывает доступный файл на стандартный вывод unmet - показывать неудовлетворенные зависимости search - поиск в списке пакетов по шаблону регулярных выражений show - показать читаемую запись для пакета зависимость - показать необработанную информацию о зависимости для пакета rdepends - Показать информацию об обратной зависимости для пакета pkgnames - список имен всех пакетов в системе dotty - генерирует графы пакетов для GraphViz xvcg - генерирует графы пакетов для xvcg policy - Показать параметры политики Параметры: -h Это текст справки. -p =? Кеш пакета. -s =? Исходный кеш. -q Отключить индикатор прогресса. -i Показать только важные команды для команды unmet. -c =? Прочитайте этот файл конфигурации -o =? Установите произвольную опцию конфигурации, например -o dir :: cache = / tmp Для получения дополнительной информации смотрите справочные страницы apt-cache (8) и apt.conf (5). **
apt --installed list
дает лучший результат (как это было предложено в верхнем ответе выше. Хотя apt-cache pkgnames
на первый взгляд кажется, что он работает, он перечисляет «все пакеты в системе» (согласно тексту справки выше), который также включает пакеты, о которых apt знает но на самом деле не установлены. Есть --installed
опция, но, похоже, она не работает pkgnames
.
apt-cache pkgnames | wc -l
дает 55909
пакеты (о которых знает система), тогда как aptitude search '~i!~M' | wc -l
дает 2160
(пакеты установлены явно, без зависимостей).
Для полного изложения см:
половина пути через страницу:
dpkg --list
Команда ниже также выведет список всех установленных пакетов,
grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
/var/log/dpkg.log*
чтобы получить все повернутые журналы.
Помогите этому сообществу вики - добавьте актуальные решения.
Эта команда должна завершить создание текстового файла, содержащего установленные пакеты:
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 проста. Следуй этим шагам:
Добавьте PPA с:
sudo add-apt-repository -y ppa:teejee2008/ppa
Обновите apt с помощью приведенной ниже команды.
sudo apt-get update
Установите Aptik, используя:
sudo apt-get install aptik
apt-mark showmanual
включает в себя Bash, Unity и Xorg, среди других. Они должны быть там?
Я думаю, что интересно отметить apt list --installed
или dpkg-query --list
фактически использовать файл, вызванный /var/lib/dpkg/status
сзади, где вся информация о пакетах бородатая.
Так что если вы хотите иметь дело с супер расширенным списком пакетов просто cat /var/lib/dpkg/status
.
Примечание. Не изменяйте /var/lib/dpkg/status
файл.
В дополнение к пакетам 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).
Пакет dctrl-tools
предоставляет grep-status
инструмент для получения списка пакетов, помеченных как установленные в вашей системе:
sudo apt install dctrl-tools
Использование:
grep-status -FStatus -sPackage -n "install ok installed"
видеть : man dctrl-tools
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.
Есть много способов сделать это. Если вы используете CentOS, как я, вы можете использовать их: 1. yum list installed
2.rpm -qa