SDB:更新 Tumbleweed

跳转至: 导航, 搜索

情景

有关从一个旧的 openSUSE 发行版(比如 openSUSE 13.2 或者 Leap)迁移至 Tumbleweed 的相关信息详见:openSUSE:升级 Tumbleweed

你想把 Tumbleweed 升级到最新的快照版本

简短版本

在桌面打开终端更新系统:

sudo zypper dup

重启系统以应用更改:

sudo reboot

详细版本

注意: 并不建议简体中文用户使用内核终端升级系统,因为你处理依赖冲突的时候,会遇到中文字符乱码的问题,从而导致无法选择正确的依赖处理措施。

建议你熟悉 使用 snapper 回滚系统 。还值得注意的是 tumbleweed-cli

一般来说,注销你的桌面环境(DE)并从虚拟终端升级是比较安全的。这样可以避免在升级过程中出现桌面环境进程冻结或死亡的情况。然而,你可以安全地从桌面环境中下载所有需要更新的软件包,而不必安装它们。这可以从桌面的终端完成:

 su -
 zypper dup -d
 exit


如果你需要在论坛上询问冲突问题,这可能会更方便。

无论怎样,下面的内容将完成升级:


  1. 退出你的桌面环境,在登录管理器中按 CTRL + ALT + F1 进入内核终端界面。
  2. root 的身份登录。
  3. 输入命令。zypper dup
  4. 处理好任何冲突,然后同意升级。
  5. 当升级完成后,输入命令。reboot

重启并不总是需要的。Zypper 会告诉你什么时候需要(使用 zypper ps -s 查询有那些程序仍在使用已被删除的旧文件)。要返回到桌面回话输入 exit 命令,并按 CTRL + ALT + F7。

理论上,当不需要重启时,最安全的升级方式是隔离 "save.target",因为在这种状态下加载的东西最少,这意味着大多数东西在切换回DE时将被重新加载。这个想法是为了避免有过时的进程在运行,而升级后的软件包可能试图与之互动。你可以用下面的一个命令来隔离 "save.target":

 systemctl isolate rescue.target
 telinit 1

文档

以下(截取的)信息来自zypper 手册。参见 the zypper repository 的作者名单。

dist−upgrade (dup) [options]

执行一个发行版升级。该命令将(指定的)软件库的状态应用到系统中;将已安装的软件包升级(甚至降级)到软件库中发现的版本,删除已不在软件库中并对升级造成依赖性问题的软件包,处理软件包的拆分和重命名,等等。

如果没有通过 −−from 指定软件库 选项,zypper将对所有定义的软件库进行全局升级。这种全局形式的升级也会考虑未改变的已安装软件包,并重新 −评估其依赖关系。

−−from alias|name|#|URI

该选项可以多次使用,并且只限制升级到指定的软件库。尽管如此,所有启用的软件库对解析器都是可见的,并将被视为满足依赖性问题。

−l, −−auto−agree−with−licenses

对第三方许可证确认提示自动说yes。通过使用这个 选项,你选择同意该命令将安装的所有第三方软件的许可证。这个 选项对于管理员在多台机器上安装相同的软件包(通过自动程序)并在之前确认许可证特别有用。


−−auto−agree−with−product−licenses

只自动接受产品许可证。这是 SUSEconnect 等工具所使用的,它们会在产品被注册之前要求确认。因此在安装时不需要再次确认产品许可证。


−−replacefiles

安装软件包,即使它们取代了其他已经安装的软件包的文件。默认情况下,将文件冲突视为一个错误。−−download−as−need 禁用文件冲突检查,因为需要提前访问所有软件包的文件列表以执行检查。


−D, −−dry−run

测试升级,不要实际安装或更新任何软件包。这个选项将把 −−test 选项添加到 dist−upgrade 命令所运行的 rpm 命令中。


−y, −−no−confirm

不需要用户互动。是 −− 非 − 互动全局选项的别名。


−−details

显示详细的安装摘要。

求解器相关选项:


−−debug−solver

创建用于调试的解算器测试案例。使用这个选项,如果你认为依赖关系 没有完全解决,并将产生的 /var/log/zypper.solverTestCase 目录附在你的错误报告中。要使用这个选项,只需将其添加到有问题的安装或删除命令中。


−−force−resolution

迫使求解器找到一个解决方案,允许删除未满足要求的包。 要求。这是删除软件包时的默认设置(zypper remove)。这个选项覆盖 −−no−force−resolution,如果两者都在命令行中被指定。


−R, −−no−force−resolution

不要强迫求解器找到一个解决方案。相反,报告依赖性问题并提示用户手动解决。这是默认的,除了删除软件包时(zypper remove)。


−−recommends

除了必要的软件包外,还要安装推荐的软件包。默认的 行为由 [zypp.conf:solver.onlyRequires] 决定。


−−no−recommends

不安装推荐的软件包,而只安装需要的软件包。默认行为由 [zypp.conf:solver.onlyRequires] 决定。

Expert Options:

除非你知道它们是什么,否则请不要使用它们。


−−[no−]allow−downgrade

是否允许降级已安装的解析器 [zypp.conf:solver.dupAllowDowngrade]。


−−[no−]allow−name−change

是否允许改变已安装的可解析程序的名称 [zypp.conf:solver.dupAllowNameChange]。将此设置为 no 将不会替换被重命名的软件包。


−−[no−]allow−arch−change

是否允许改变已安装的解析器的架构 [zypp.conf:solver.dupAllowArchChange]。


−−[no−]allow−vendor−change

是否允许改变已安装的可解析程序的供应商 [zypp.conf:solver.dupAllowVendorChange]。如果你不希望来自国外仓库的软件包被复制到发行版(或反之),将此设置为no可能很有用。

这个命令也接受下载 −和−安装模式选项,在 install 命令描述中描述。

例如:

$ zypper dup −−from factory −−from packman

将系统升级到 factorypackman 存储库提供的最新版本。

链接