我目前使用 Debian Jessie,我想升级到 Stretch,但我担心我会丢失在 Jessie 上安装的所有程序。
有没有办法在升级到 Stretch 之前备份我的程序和文件?
答案1
简而言之,你不必这样做。
升级 debian 意味着您更改sources.list 中的发行版名称,然后运行 update/dist-upgrade 就完成了。
对于程序来说,有两种情况:
1.您使用 Debian 安装的程序- 你不需要担心这些。所有程序和依赖项都会自动升级。而且,如果某个软件包没有可用的升级,它会保留在那里,不受升级过程的影响。
2. 单独安装的程序- 这些是您独立于 Debian 软件包系统安装的程序。造成这种情况的原因有多种:您使用的程序在 Debian 上不可用,或者您下载了源代码,编译并安装了它,或者它运行了自己的安装包,而忽略了 Debian。这也很好,因为软件包系统不会触及这些程序,因为它们安装在“本地”目录中:“/usr/local”、“/lib/local”等。这些程序及其库在升级过程后也将保留。您可能必须更新它们,因为它们的某些依赖项可能会被 Debian 升级,但升级前的备份则不然。
如果你真的想要备份你的程序,我想你可以创建一个包含所有的存档/usr
,/lib
并将/etc
其保存在其他地方:
# tar cvzf /root/backup.tar.gz /usr /lib /etc
但我必须说,这确实没有必要。
答案2
如果所有程序都在存储库中,您只需备份已安装软件包的列表(以防出现问题并且需要重新安装)。
dpkg -l | egrep "^ii" | cut -d' ' -f3
dpkg -l
显示所有已安装的软件包
egrep "^ii"
删除那些只有残留配置且未实际安装的东西
cut -d' ' -f3
只是删除输出的其他列
当然,如果您正在进行完整备份,这些并不是您应该备份的唯一内容,但没有要求这样做,所以我不会提及这些