我昨天用 Cinnamon DE 安装了 Antergos。使用一段时间后,我收到了一些核心软件包更新的通知,我想“嘿,保持最新状态很好,对吧?为什么不呢”并更新了所有内容。
今天我发现我无法登录了。幸运的是,我能够得到 tty 提示并安装 Xfce4,从那里我可以在互联网上寻找解决方案。
事实证明,我所做的这些更新包括readline
从 6.3 升级到 7.0。cinnamon-desktop
显然依赖于 6,所以我开始收到如下错误:
cinnamon: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
当然,一开始就发现这个错误消息需要一些寻找。
事实上,我只有/lib/libreadline.so.7
,所以这就解释了问题。然后我假设简单的解决方案就是安装旧版本,就是/lib/readline.so.6
这样,但我很难弄清楚如何做到这一点pacman
,事实证明这并不是 Arch 中鼓励的事情。
最终我听从了建议关于这个问题的线程并简单地readline
从pacman
缓存将我的版本降级到 6.3,而且bash
因为它依赖于readline
.现在肉桂的作用和以前一样。我在更新通知程序中看到这两个软件包,我知道如果安装它们将会破坏我的系统。
我的问题是这样的:这种事情(更新突然破坏了一切)是 Arch 和/或 Antergos 的预期行为吗?是否有某种“稳定”的渠道可供我使用,仅在更新发布一段时间并在现实世界中进行测试后才接收更新?
我本来打算花一上午的时间来工作,但我却把它花在修复更新引起的错误上。我做错了什么?经验丰富的 Arch 用户如何处理这个问题?
- 除非我绝对需要更新,否则我是否应该不安装更新? (但是安全性和漏洞呢?)
- 我是否应该只定期安装更新,然后腾出时间进行不可避免的故障排除?
- 我是否应该以不同的方式配置我的存储库/更新设置以避免获取最新更新?
- 这是预期的行为吗?您应该习惯从缓存回滚吗?
附录:Cinnamon 的问题仅作为示例,但为了等待未来读者的困惑,我不应该认为它显然是现在已修复(bug 被打开后 7 小时)通过重建 cinnamon。看起来我非常“幸运” - 我在readline
7 被推出时更新,但在 Cinnamon 维护者能够捕获并修复它之前。
答案1
这个问题可能更好地针对 Antergos 论坛,但我可以分享 Arch 的个人经验:
通常,频繁升级比不频繁升级要好。当任何问题出现时,您都会发现并一次处理一个问题,而不是让它们堆积起来。
根据您的需要进行更新。没有特别的理由要坚持任何特定的升级计划;这取决于您的系统和您的需求。例如,我发现安装的软件包较少的 Arch 系统通常不需要频繁更新。在我经常使用的 4 Arch 系统上,我每次登录时都会更新(最多一天一次),这似乎效果很好。
坚持使用最新存储库的最新更新。一般来说,这将为您提供最新的安全更新,让您的软件包更有可能与系统上的其他软件配合使用,并保持一切顺利运行。
就我个人而言,我很少需要从缓存中回滚。当升级出现问题时,通常是由于维护人员未能正确构建或测试他们的软件包,而不是由于我过度热心升级。
您遇到的 Cinnamon 问题似乎可能是由于软件包维护者的打包工作不佳造成的,而不是 Arch 风格的前沿滚动更新的失败。就我个人而言,我在 Arch 上使用 Cinnamon 时遇到了一些问题,而且它的工作效果从来没有其他桌面环境那么好(我使用过 Gnome、MATE 和 i3,麻烦要少得多)。
我想分享的最后一件事是,如果您知道有问题的软件包在升级时中断,您可以将它们添加IgnorePkg
到/etc/pacman.conf
.我很少需要这样做,而且它几乎总是我忽略的 AUR 包(我喜欢使用 AUR 助手)。有一次,我不得不将IgnorePkg
笔记本电脑上的内核列入黑名单,因为背光的专有驱动程序在最新的内核版本上不起作用(幸运的是,这个问题最终在上游得到了修复,我可以回去接收内核更新)。我会不是除非绝对必要,否则建议采用此方法。
答案2
ArchLinux 是滚动发行版,而不是点发行版。这意味着您无需重新安装 ArchLinux 即可获得最新、最好的软件。它慢慢地转变为最新的软件。大多数时候,这很棒。有时,需要进行较大的转换,这可能会导致问题。要了解更大的转变,您应该订阅[电子邮件受保护]。
ArchLinux 也有些前沿。这意味着您可以准时获得最新的软件。 ArchLinux 中也有测试存储库,您可以在/etc/pacman.conf
.我不知道包在测试中停留了多长时间,但不会太长。大多数时候,这很棒。有时您会得到未经充分测试的软件包。
当更新 ArchLinux 时(你应该这样做),你可以遵循两种策略:
经常更新。你会遇到几个小问题。但他们通常不会破坏太多东西。您还可以更轻松地了解可能导致问题的包。
很少更新。你会遇到更少的问题,因为大多数问题已经被时间解决了。但是,升级系统可能是一项相当大的任务,并且更新需要一段时间。
上面的提示是相当悲观的。虽然偶尔会出现一些问题(如果您不运行广泛使用的软件,则问题会更多),但总的来说,ArchLinux 非常稳定。
回答你的问题:你绝对应该更新!众所周知,ArchLinux 推出安全补丁的速度相当快,但您可能会错过这一点。但是,请勿在使用笔记本电脑进行演示前 10 分钟更新。
如果您遇到问题,那么
- 检查
/var/log/pacman.log
,了解发生了什么变化的历史记录,尝试了解哪个包导致了问题。 - 使用降级降级特定包。
- 使用ArchLinux 回滚机作为最后的手段。