我正在考虑将旧版AMD64转换为32位新的英特尔双核。安装不是问题,但我可以转移所有已安装的应用程序吗?我没去过 能够在谷歌上找到任何东西,除非迁移到类似的平台和文件系统。我不会改变文件系统,但平台会有所不同。 Gentoo中的“World”文件有什么内容吗?
答案 0 :(得分:34)
您可以轻松保存您的包列表:请参阅“man dpkg”并搜索--set-selections和--get-selections。
它的基础是保存包列表:
dpkg --get-selections > package_list
要在另一个系统上恢复该列表:
cat package_list | sudo dpkg --set-selections && sudo apt-get dselect-upgrade
跨架构移动意味着某些软件包不可用。他们将被忽视;例如,ia32-libs
将无法在32位系统上安装。如果您从x86-64转到x86,那么该选择将被忽略。
答案 1 :(得分:4)
有趣的是,我在这里使用SO作为一个howto存储库(写一个问题,然后选择我自己的答案),但是在我写自己的答案的时候,我被打了三次!
无论如何,这是我对记录的看法:
使用dpkg的--get-selections和--set-selections选项捕获并选择当前安装的软件包。
首先,在旧系统上导出当前包列表:
sudo dpkg --get-selections > mypackages.txt
然后选择此列表作为要在新系统上安装的软件包:
sudo dpkg --set-selections < mypackages.txt
(要获得额外的功劳,请将您的apt缓存目录复制到最小化下载:/var/cache/apt)
最后,告诉apt下载并安装所选的软件包:
sudo apt-get dselect-upgrade
答案 2 :(得分:2)
对于您使用apt-get安装的所有内容,如果要创建已安装内容的记录,请执行以下操作:
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位,因此某些软件包可能不兼容。在运行上面的脚本之前,我会将packages.txt grep为'64',如果需要,我会找到替代品
2)您从源代码安装的任何内容,您必须再次记录并从源代码安装。
答案 3 :(得分:2)
如果(像我一样)在你弄乱你的系统之前你没有这样做,你可以启动到live-cd或其他安装,并使用chroot来获取这些信息。
sudo chroot /path/to/old/system /bin/bash
然后执行dpkg --get-selections
舞蹈,您可以使用生成的文件来设置新系统。
答案 4 :(得分:2)
这就是我通常要解决的类似问题(多次迁移到新笔记本电脑)。
此问题的其他答案还有两个补充,这也会移动您的update-alternatives
和debconf
设置,这些设置总是需要很长时间才能意识到这些设置未被转移。
旧系统备份:
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
将config目录复制到新闻系统(“scp -r oldsystem:system-selections ~
”):
sudo apt-get install dselect debconf-utils
sudo dselect update
sudo dpkg --set-selections < system-selections/dpkg-selections
sudo debconf-set-selections < system-selections/debconf-selections
sudo apt-get -u dselect-upgrade
sudo update-alternatives --set-selections < system-selections/alternatives-selections
此外,您可以使用相同的方法定期将主目录和system-selections
(如上所述)的备份备份到远程存储。因此,如果您的笔记本电脑坏了/被盗,建立一个类似的系统非常快。
答案 5 :(得分:1)
我能想到的最好的方法是备份当前系统上已安装软件包的列表,然后使用该列表设置要在新系统上安装的软件包。有关如何备份和恢复软件包选择的一般说明:
sudo apt-get install dselect
dpkg --get-selections | grep -v deinstall > ubuntu-files
sudo apt-get update
sudo apt-get dist-upgrade
dpkg --set-selections < ubuntu-files
sudo dselect
这将打开一个dselect会话。输入“I”并允许选择 安装ubuntu-files文件中列出的软件包。 完成后,键入“Q”并按ENTER键退出dselect。
答案 6 :(得分:1)
我不确定这是否是答案,但我刚刚发现命令aptitude-create-state-bundle的存在。是的,这是一个命令。查看手册页。