Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере: различия между версиями

Материал из support.qbpro.ru
Нет описания правки
Нет описания правки
 
Строка 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

Примеры результатов:
Apt-list1.png

  • Чтобы увидеть только список пакетов, попробуйте:
dpkg-query -f '${binary:Package}\n' -W

Примеры результатов:
Apt-list2.png

  • Чтобы получить список установленных пакетов, введите команду:
dpkg --get-selections | grep -v deinstall

Пример:
Apt-list3.png

  • Другой вариант:
apt list --installed

или можно просто найти все пакеты на основе PHP:

apt list --installed | grep php

Пример:
Apt-list4.png

  • Как сохранить список в текстовый файл

Команда выглядит следующим образом для 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}')