Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере: различия между версиями
Материал из support.qbpro.ru
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
Строка 13: | Строка 13: | ||
[[Файл:Apt-list2.png|600px]] | [[Файл:Apt-list2.png|600px]] | ||
<br> | <br> | ||
* Чтобы получить список установленных пакетов, введите команду: | |||
dpkg --get-selections | grep -v deinstall | |||
Пример:<br> | |||
[[Файл:Apt-list3.png|600px]] | |||
<br> | |||
* Другой вариант: | |||
apt list --installed | |||
или можно просто найти все пакеты на основе PHP: | |||
apt list --installed | grep php | |||
Пример:<br> | |||
[[Файл:Apt-list4.png|600px]] | |||
<br> | |||
* Как сохранить список в текстовый файл | |||
Команда выглядит следующим образом для 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}') | |||
* [https://ruvds.com/ru/helpcenter/ubuntu-debian-packages/ Источник] | |||
* [https://losst.pro/spisok-ustanovlennyh-paketov-debian Дополнительно полезное] |
Текущая версия от 07:44, 10 октября 2023
- Чтобы получить список всех установленных пакетов на 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}')