Я новый системный администратор Ubuntu Linux. Как получить список всех установленных пакетов на сервере1 и установить их на server2? Как перечислить все установленные пакеты с помощью команды apt-get на сервере Ubuntu или Debian?
Вам нужно использовать dpkg и другие команды, как показано ниже, чтобы просмотреть список всех установленных пакетов на сервере Ubuntu или Debian Linux.
Просто перечислите все установленные пакеты на Ubuntu / Debian Linux с кратким описанием
Введите следующую команду:
$ dpkg-query –l
Примеры возможных выводов данных:
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=============================-=================================-============-============================================================================= == ii accountsservice 0.6.40-2ubuntu11.3 amd64 query and manipulate user account information ii acct 6.5.5-2.1ubuntu1 amd64 The GNU Accounting utilities for process and login accounting ii acl 2.2.52-3 amd64 Access control list utilities ii adduser 3.113+nmu3ubuntu4 all add and remove users and groups ii apparmor 2.10.95-0ubuntu2.5 amd64 user-space parser utility for AppArmor ii apt 1.2.19 amd64 commandline package manager ii apt-transport-https 1.2.19 amd64 https download transport for APT ii apt-utils 1.2.19 amd64 package management related utility programs ii atop 1.26-2build1 amd64 Monitor for system resources and process activity ii base-files 9.4ubuntu4.3 amd64 Debian base system miscellaneous files ii base-passwd 3.5.39 amd64 Debian base system master password and group files ii bash 4.3-14ubuntu1.1 amd64 GNU Bourne Again SHell ii bash-completion 1:2.1-4.2ubuntu1.1 all programmable completion for the bash shell ii bc 1.06.95-9build1 amd64 GNU bc arbitrary precision calculator language ii bind9-host 1:9.10.3.dfsg.P4-8ubuntu1.4 amd64 Version of 'host' bundled with BIND 9.X ii bsdmainutils 9.0.6ubuntu3 amd64 collection of more utilities from FreeBSD
Хотите просто увидеть список пакетов? Для этого попробуйте:
$ dpkg-query -f '${binary:Package}\n' –W
Примеры возможных выводов данных:
unattended-upgrades update-manager-core ureadahead usbutils util-linux uuid-runtime vim vim-common vim-runtime vim-tiny virt-what vnstat wamerican wbritish wget whiptail whois xauth xdg-user-dirs xkb-data xml-core xz-utils zlib1g:amd64
Как получить список установленных пакетов
Для этого введите
$ dpkg --get-selections | grep -v deinstall
Примеры возможных выводов данных:
Другой способ это использовать команду apt command следующим образом:
$ apt list –installed
ИЛИ же просто задайте поиск всех пакетов на основе php с помощью команды grep command:
$ apt list --installed | grep php
Примеры возможных выводов данных:
Listing... accountsservice/xenial-updates,now 0.6.40-2ubuntu11.3 amd64 [installed,automatic] acl/xenial,now 2.2.52-3 amd64 [installed,automatic] adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed] apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 amd64 [installed] apt/xenial-updates,now 1.2.19 amd64 [installed] apt-transport-https/xenial-updates,now 1.2.19 amd64 [installed] apt-utils/xenial-updates,now 1.2.19 amd64 [installed] atop/xenial,now 1.26-2build1 amd64 [installed] base-files/xenial-updates,now 9.4ubuntu4.3 amd64 [installed] base-passwd/xenial,now 3.5.39 amd64 [installed] bash/xenial-updates,now 4.3-14ubuntu1.1 amd64 [installed] bash-completion/xenial-updates,xenial-updates,now 1:2.1-4.2ubuntu1.1 all [installed] bc/xenial,now 1.06.95-9build1 amd64 [installed] bind9-host/xenial-updates,xenial-security,now 1:9.10.3.dfsg.P4-8ubuntu1.4 amd64 [installed] bsdmainutils/xenial,now 9.0.6ubuntu3 amd64 [installed] bsdutils/xenial-updates,now 1:2.27.1-6ubuntu3.2 amd64 [installed] busybox-initramfs/xenial,now 1:1.22.0-15ubuntu1 amd64 [installed] busybox-static/xenial,now 1:1.22.0-15ubuntu1 amd64 [installed] bzip2/xenial,now 1.0.6-8 amd64 [installed] ca-certificates/xenial,xenial,now 20160104ubuntu1 all [installed] command-not-found/xenial-updates,xenial-updates,now 0.3ubuntu16.04.2 all [installed] command-not-found-data/xenial-updates,now 0.3ubuntu16.04.2 amd64 [installed] console-setup/xenial-updates,xenial-updates,now 1.108ubuntu15.2 all [installed] console-setup-linux/xenial-updates,xenial-updates,now 1.108ubuntu15.2 all [installed] ..... .. ... xkb-data/xenial,xenial,now 2.16-1ubuntu1 all [installed] xml-core/xenial,xenial,now 0.13+nmu2 all [installed,automatic] xz-utils/xenial,now 5.1.1alpha+20120614-2ubuntu2 amd64 [installed,automatic] zlib1g/xenial,now 1:1.2.8.dfsg-2ubuntu4 amd64 [installed]
Как сохранить список в тестовом документе
Синтаксис будет выглядеть следующим образом на server1:
$ dpkg --get-selections | grep -v deinstall > mylist.txt
Или
$ dpkg -l | grep ^ii | awk '{ print $2}' > mylist.txt
Теперь скопируйте mylist.txt на сервер под названием server2:
$ scp mylist.txt user@server2:~/
Как восстановить список на server2
На сервере server2 восстановите установки из mylist.txt, для этого запустите:
$ dpkg --clear-selections $ sudo dpkg --set-selections < mylist.txt
ИЛИ
$ sudo apt-get install -y $(< mylist.txt)
Наконец, выполните следующую команду для удаления нежелательных пакетов:
$ sudo apt-get autoremove
На выше приведенном примере команда должна восстанавливать / устанавливать пакеты из резервных копий или другого сервера. Другой вариант — использовать команду aptitude следующим образом:
### Create the list of software to a file called /tmp/packages.txt ### dpkg --get-selections > /tmp/packages.txt ### copy file to another server called server1.cyberciti.biz ## scp /tmp/packages.txt user@server1.cyberciti.biz:/tmp/ ### Now that your list is copyied use apt-get/synaptic to install the packages### # 1. Login to another server ssh root@server1.cyberciti.biz # 2. Restore it aptitude install $(cat /tmp/packages.txt | awk '{print $1}')
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно:
У вас опечатка apt list -installed, должно быть apt list —installed (два тире).