Можно ли перечислить все версии установленных пакетов таким образом, чтобы их можно было затем установить в другой системе?
Я знаю, что можно перечислить версии с помощью
dpkg -l > versions.txt
Но есть ли простой способ использовать выходные данные в другой системе?
dpkg --get-selections
не перечисляет версии.
(Если важна версия ОС, я использую 14.04)
Один из способов сделать это - создать файл списка с помощью команд установки. Следующая команда создаст файл, содержащий команды, указывающие apt-get
, какую версию приложения установить:
dpkg -l | tail -n +6 | awk '{print $2"="$3}' | while read pkg; do echo "sudo apt-get install $pkg" >> install_pkg; done
Я поместил команду выше, чтобы пропустить первые 6 строк dpkg -l
, поскольку они являются информацией линии, которые превращаются в линии мусора. Я также не добавил -y
в команду apt-get
, чтобы она автоматически не установила приложение, которое вы не хотели устанавливать. Я могу оставить это до вас. Когда я проверил, будет ли это работать или нет, я добавил в -s
для имитации установки после apt-get
в команде, и это, похоже, сработало.
Команда создаст файл со строками, которые выглядят следующим образом, который содержит имя пакета и версию для установки ( Я усек для длинного списка ):
sudo apt-get install y-ppa-manager=2017.06.13-1~webupd8~0
sudo apt-get install yad=0.39.0-1~webupd8~xenial0
sudo apt-get install yelp=3.20.1-1ubuntu1~xenial1
sudo apt-get install yelp-xsl=3.20.1-1~ubuntu16.04.1~xenial1
sudo apt-get install youtube-screenlet=0.3.2+++~trusty1
sudo apt-get install zeitgeist=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-core=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-datahub=0.9.16-0ubuntu4
sudo apt-get install zenity=3.20.0-1~ubuntu16.04.1
sudo apt-get install zenity-common=3.20.0-1~ubuntu16.04.1
sudo apt-get install zip=3.0-11
sudo apt-get install zlib1g:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g:i386=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g-dev:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zsync=0.6.2-1ubuntu1
Затем все, что вам нужно сделать, это скопировать файл install_pkg
, который был создан, в другую систему, учитывая, что все PPA в другой системе соответствуют системе, в которой вы находитесь, и запустить следующую команду, чтобы начать установку:
sh ./install_pkg
Надеюсь, это поможет!