一般情况下在 openSUSE 系统中更新系统和应用使用命令行的 sudo zypper update
,或者 YaST 中升级软件包功能,或者(如果是 KDE 桌面的话)系统任务栏的更新部件都可以。但是这些方式对于「滚动更新」的 openSUSE Tumbleweed 来说却不是正确的方式。
关于 openSUSE Tumbleweed 系统的正确更新方式在很多地方(邮件列表、openSUSE Forum)里面都有讨论,而且似乎还经常有人问(新手老手都有)。
之前在每周更新中提到过了,openSUSE Tumbleweed 的邮件列表上也讨论过最好的更新 openSUSE Tumbleweed 的方式。如果总结一下就是,使用
$ sudo zypper dup --no-allow-vendor-change
来更新最好,因为「滚动更新」的每一个更新快照(snapshot)都相当于一次系统版本升级。使用选项 no-allow-vendor-change
的目的在于防止因为有除了 opensuse-tumbleweed-*
之外的源存在而破坏了 openSUSE Tumbleweed 系统;而使用 dup
(dist-upgrade) 而不是 up
(update)的好处在于,zypper dist-upgrade
会在升级过程中清除不再使用的软件包,而 zypper update
则不会,对于 openSUSE Tumbleweed 这样的滚动更新发行版来说,将过期的软件包保留在系统中也是可能会造成很大问题的。
至于这背后更多的技术或是理论等,还是看文中参考链接中的讨论比较好。论坛中搜索「no-allow-vendor-change」也会有不少相关的讨论。
更新 2017-07-10
在 openSUSE Tumbleweed 20170708 快照中,libzypp 从 16.12.0 升级到 16.13.0,针对 Tumbleweed 修改了 /etc/zypp/zypp.conf
的默认配置,将 zypper dup
默认设置为开启 --no-allow-vendor-change
选项。但是这个修改只针对默认的 zypp.conf 配置,如果用户修改过该配置则有可能需要自己核查。
所以一般用户以后升级 Tumbleweed 的时候就不需要再加这个选项了;但是有些特殊用户如果不希望使用该选项的话就需要自己修改配置文件了。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/right-way-to-update-opensuse-tumbleweed/>。转载请保留此信息及相应链接。
引用通告: openSUSE Tumbleweed 本周更新 Linux Kernel 5.5.7、GCC 10.0.1 和 Python 3.8.2 等 | 水景一页