Предположим я- новичек, системный администратор Ubuntu Linux. Как мне получить список всех установленных пакетов на server1 и установить их на server2? Как перечислить все установленные пакеты с помощью команды apt-get на сервере Ubuntu или Debian?
Вам нужно использовать dpkg и другие команды, как показано ниже, чтобы увидеть список всех установленных пакетов на сервере 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 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 ureadahead usbutils util-linux uuid-runtime vim vim-common vim-runtime vim-tiny virt-what vnstat wamerican ...........
Как получить список установленных пакетов
Введите следующую команду
$ dpkg --get-selections | grep -v deinstall
Другой вариант — использовать команду apt следующим образом:
$ apt list --installed
ИЛИ просто найдите все пакеты php, используя команду grep :
$ 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] 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] ................
Как сохранить список в текстовый файл
Синтаксис следующий: 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:~/
Как установить список пакетов на сервере2
На сервере server2 восстановите из файла mylist.txt, запустите:
$ dpkg --clear-selections $ sudo dpkg --set-selections < mylist.txt
ИЛИ
$ sudo apt-get install -y $(< mylist.txt)
Наконец, запустите следующую команду, чтобы удалить ненужные пакеты:
$ sudo apt-get autoremove
Выше команда должна восстанавливать / устанавливать пакеты из резервных копий или другого сервера. Другим вариантом является использование команды aptitude следующим образом:
### Создайте список программ в файле /tmp/packages.txt #### dpkg --get-selections > /tmp/packages.txt ### копировать файл на другой сервер под названием server1.itfb.com.ua ## scp /tmp/packages.txt [email protected]:/tmp/ ### Теперь, когда ваш список скопирован, используйте apt-get / synaptic для установки пакетов #### 1. Вход на другой сервер ssh [email protected] # 2. Установите из списка aptitude install $(cat /tmp/packages.txt | awk '{print $1}')