全新安装后重新安装应用程序?


8

我在使用Debian,我想重新分区驱动器并重新安装。全新安装后,是否有一种简单的方法来还原当前所有已安装的软件包?

我正在考虑通过制作备份应用列表来做到这一点:

#generate list of installed packages
dpkg -l | awk '{ print $2 }' ORS="\n" | tail -n +6 > reinstallList.txt

然后执行全新安装后,我应该可以执行以下操作:

#install from backup at reinstallList.txt
sudo apt-get  install $(< reinstallList.txt)

有更好的方法吗?


1
不要忘记备份/ etc,这样您就可以轻松地恢复那些软件包的配置设置。
Anthon 2013年

Answers:


7

根据Debian wiki,您应该在重新安装之前运行以下命令:

dpkg --get-selections > /backup/installed-software.log

然后,重新安装后,运行以下命令:

dpkg --set-selections < /backup/installed-software.log
apt-get dselect-upgrade

显然,您应该用/backup/installed-software.log在重新安装过程中可以保留的某些文件的名称替换。将其放在拇指驱动器上会很好。

有关更多信息,请参见Wiki:https : //wiki.debian.org/ListInstalledPackages


我已经多次使用这种方法。
bahamat 2013年

完善!这正是我想要的。谢谢!
nyxgeek 2013年

3

dpkg -l列出所有已安装的软件包(在正确过滤时显示在列表中)。您可以使用来获得相同的列表dpkg --get-selections(不需要进一步过滤)。

这会丢失有关手动安装软件包和自动安装软件包的信息。将库和其他软件包标记为仅间接需要是非常方便的。标记为自动安装的软件包可以删除或替换为其他软件包,而不必大惊小怪。Dpkg不知道自动安装的软件包,只有apt知道。

要列出手动安装的软件包,可以使用aptitude:

aptitude search -F %p '~i !~M' >reinstallList.txt

没有天赋,它会变得更加复杂。

dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt

要安装以前安装的所有软件包:

apt-get install $(cat reinstallList.txt)

或者,您可以使用更round回的方法来复制已安装软件包的列表,然后还原标记为自动的软件包列表。要备份:

dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt

恢复:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.