有没有办法既能使用我需要的软件,又能使用 Ubuntu 升级程序,而不是全新安装每个 LTS 版本?

有没有办法既能使用我需要的软件,又能使用 Ubuntu 升级程序,而不是全新安装每个 LTS 版本?

就像它上面所说的那样。

我已经使用 Ubuntu 大约五年了,每次升级都是一场磨难。运行do-release-upgrade结果导致部分升级、升级失败或显示“第三方”存储库将被禁用的消息。

因此,我最终进行了全新安装,我一直听说这个过程应该需要“几个小时”,但通常要花一整个周末(对于每台机器)才能让一切恢复到我喜欢的样子。

显然,这是一个选择;另一个选择是只运行来自 Ubuntu 存储库的软件——对于需要完成我需要的所有功能的“日常驱动器”计算机来说,这不是很实用(首先,Ubuntu 存储库中的游戏选择坦率地说很糟糕,其次,提供的生产力应用程序版本通常已经过时了几年)。

还有第三种选择吗?我运行 Libre Office(目前从他们的 repo/ppa 运行,因为 Ubuntu 上的版本太旧了)、SeaMonkey(同上)以及来自第三方网站的许多其他应用程序或插件。

答案1

是的,还有第三种方法(在我看来更好)。

首先,通过从第三方存储库安装软件,您已经接受了“它是否与我即将安装的 Ubuntu 版本兼容?”的责任。

您必须研究每个第三方存储库以查看它是否可以在新版本上运行。

我假设你已经/home在单独的磁盘分区上做了类似的事情,并尽可能地使用/opt。请参阅文件系统层次结构标准Linux 基金会的 FHS /opt可以创建,但是 Linux 软件升级不会触及/opt

将第三方存储库添加到/etc/apt/sources.list.d/而不是/etc/apt/sources.list,并在期间禁用它们发布升級。

保持系统最新状态

sudo apt update
sudo apt upgrade 

至少每周一次。

维护并使用一个固定程序,该程序对每个第三方工具进行简单的“这有效吗?”测试。

以上内容的意思是应该列出您所关心的每个软件的清单。

然后,针对每个测试,决定进行一个简单的功能测试。测试可以简单到“守护进程是否正在运行?”,或者使用微小测试数据的命令行调用,或者使用expectGUI 模拟器的更复杂的东西。目标是生成一个小型可测试(无害)的软件调用,并报告名称和结果,然后将测试包装在脚本中,以便您可以键入单个命令并执行:

$ ./run_tests
First_Program:     OK
Program_Two:    BAD 
Prog_3:    OK
...
7 Tests run, 6 OK 1 BAD

每次升级之前和之后运行这组测试。

当测试失败时,(BAD)进行调查。查找哪些系统包已升级(在 中/var/log/apt/)。

阅读包装内的Change Log说明apt changelog packagename

确定哪些变化导致了失败,并找出要做的事情(重建失败的测试的软件(如果您有源代码),从其他地方重新安装包,向其他地方的开发人员报告,...)。

要获取灵感,请阅读man run-parts

相关内容