在将Ubuntu迁移到其他平台时,如何保留已安装的应用程序?

在将Ubuntu迁移到其他平台时,如何保留已安装的应用程序?,ubuntu,migrate,apt,dpkg,Ubuntu,Migrate,Apt,Dpkg,我正在考虑从旧的AMD64迁移到新的32位Intel双核。安装没有问题,但我可以传输所有已安装的应用程序吗?我没去过 到目前为止,除了迁移到类似的平台和文件系统之外,我们可以在谷歌上找到任何东西。我不会更改文件系统,但平台会有所不同。Gentoo中“World”文件的行中是否有某些内容?对于您用来安装的所有内容,如果要创建已安装内容的记录,请运行以下命令: dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt #!/bin/sh for p

我正在考虑从旧的AMD64迁移到新的32位Intel双核。安装没有问题,但我可以传输所有已安装的应用程序吗?我没去过
到目前为止,除了迁移到类似的平台和文件系统之外,我们可以在谷歌上找到任何东西。我不会更改文件系统,但平台会有所不同。Gentoo中“World”文件的行中是否有某些内容?

对于您用来安装的所有内容,如果要创建已安装内容的记录,请运行以下命令:

dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt
#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done
这将创建一个包含所有已安装软件包的文本文件。然后在完成安装后,创建并运行具有以下内容的脚本:

dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt
#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done
注:
1) 由于您正在从64位移动到32位,因此某些软件包可能不兼容。在运行上面的脚本之前,我将grep packages.txt作为'64',如果需要,我会找到替代方案。
2) 从源代码安装的任何内容,都必须记下并重新从源代码安装。


祝你好运

我能想到的最好办法是备份当前系统上已安装软件包的列表,然后使用该列表设置要在新系统上安装的软件包。有关如何备份和恢复软件包选择的一般说明:

安装工具 备份包列表 恢复程序包选择
sudo-apt-get-update
将系统升级到新版本
dpkg——设置选择
这将打开一个dselect会话。键入“I”并允许dselect 安装ubuntu文件文档中列出的软件包。
完成后,键入“Q”并按ENTER键退出dselect。

您可以轻松保存软件包列表:查看“man dpkg”并搜索--set selections和--get selections

不过,它的基本功能是保存包列表:

sudo apt-get dselect-upgrade
dpkg——获取选择>包列表

要在另一个系统上还原该列表,请执行以下操作:

cat软件包列表| sudo dpkg--设置选项和sudo apt get dselect升级


跨架构移动意味着将有一些包不可用。他们将被忽视;例如,
ia32 libs
将无法在32位系统上安装。如果您从x86-64迁移到x86,则该选择将被忽略。

有趣的是,我在这里使用SO作为howto存储库(写一个问题,然后选择我自己的答案),但在我写自己的答案时,我被打败了三次

不管怎样,以下是我的记录:

使用dpkg的--get selections和--set selections选项捕获和选择当前安装的软件包

首先,在旧系统上导出当前包列表:

sudo dpkg --get-selections > mypackages.txt
sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections
然后选择此列表作为要在新系统上安装的软件包:

sudo dpkg --set-selections < mypackages.txt

我不确定这是否是一个答案,但我刚刚发现了command-aptitude-create-state捆绑包的存在。是的,这是一个命令。查看手册页

如果(像我一样)你在把系统搞砸之前没有这样做,你可以启动到live cd或其他安装中,并使用chroot获取此信息

sudo chroot /path/to/old/system /bin/bash

然后执行
dpkg--get selections
dance,您可以使用生成的文件来设置新系统。

这是我通常用来解决类似问题的方法(多次迁移到新笔记本电脑)

除此问题的其他答案外,还有两个答案,这也将移动您的
更新备选方案
debconf
设置,这通常需要很长时间才能实现未传输的设置

旧系统上的备份:

sudo dpkg --get-selections > mypackages.txt
sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections
将配置目录复制到新系统(“
scp-r oldsystem:system selections ~
”):

sudo apt get install dselect debconf utils sudodselect更新 sudo dpkg——设置选择<系统选择/dpkg选择 sudo debconf集合选择<系统选择/debconf选择 sudo apt get-u dselect升级 sudo更新备选方案--设置选择<系统选择/备选方案选择

此外,您还可以使用相同的方法定期将主目录和
系统选项
(如上所述)备份到远程存储。因此,如果您的笔记本电脑损坏/被盗,构建类似系统的速度非常快。

需要做:$sudo apt get install dselect$sudo dselect->Update->install。然后sudo apt get dselect升级工作
sudo dselect update
也可能是必要的。如果没有,我在运行
apt get dselect upgrade
时出现以下错误:
dpkg:警告:数据包不在数据库的第行…
请参阅