====== Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux ====== Чтобы получить список всех установленных пакетов на Ubuntu или Debian, используйте DPKG и другие команды. Введите следующую команду: dpkg-query -l Чтобы увидеть только список пакетов, попробуйте: dpkg-query -f '${binary:Package}\n' -W Чтобы получить список установленных пакетов, введите команду: dpkg --get-selections | grep -v deinstall Другой вариант: apt list --installed или можно просто найти все пакеты на основе PHP: apt list --installed | grep php ===== Как сохранить список в текстовый файл ===== Команда выглядит следующим образом для server1: dpkg --get-selections | grep -v deinstall > mylist.txt Теперь скопируйте mylist.txt на server2 с адресом, например 100.100.100.100: scp mylist.txt 100.100.100.100:~/ Пример The authenticity of host 100.100.100.100 (100.100.100.100)' can't be established. ECDSA key fingerprint is SHA256:r+WgiifO Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '100.100.100.100' (ECDSA) to the list of known hosts. ===== Как установить скопированные пакеты на 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 следующим образом: ### Создаем список программ в директории на первом сервере /tmp/packages.txt ### dpkg --get-selections > /tmp/packages.txt ### Копируем файл на второй сервер с адресом 100.100.100.100 ### scp /tmp/packages.txt 100.100.100.100:/tmp/ ### Теперь вы можете установить пакеты на втором сервере используя команду apt-get/synaptic ### 1. Соединяемся с первым сервером ssh root@100.100.100.101 2. Устанавливаем aptitude: sudo aptitude 3. Восстанавливаем данные aptitude install $(cat /tmp/packages.txt | awk '{print $1}')