openSUSE:升级 Tumbleweed
本页中所指的“升级”就是:从一个旧的 openSUSE 发行版(比如 openSUSE 13.2 或者 Leap)迁移至 Tumbleweed。如果你已经安装了 Tumbleweed 并需要升级系统到最新的快照版本,详见:SDB:更新 Tumbleweed
官方支持两种升级方式:
- 离线升级 —— 通过使用 DVD 来启动系统,并进行升级
- 在线升级 —— 通过变更已经安装的 openSUSE 系统的软件源来实现在线安装和升级
离线升级相对来说更加安全,因为在此升级过程中没有已经运行的应用干扰。
在线升级相对来说更加方便一些,因为此升级过程可以在系统运行时进行,并且不需要下载完整的 DVD 镜像。
离线升级
离线升级只需要以下几步:
- 下载相应的 DVD 镜像,烧录到 DVD 光盘或者 U 盘
- 启动 DVD 光盘或者 U 盘
- 选择升级
- 按照向导操作,升级向导会检测你的安装设备并进行升级。
在线升级
通过以下三个步骤来实现从任何版本到 Tumbleweed 版本的升级:
- 在现有的系统中安装在线更新,如果有的话。
- 变更软件源到 Tumbleweed 的软件源
- 执行 zypper dup (这是命令 zypper dist-upgrade 的简写形式) 来升级全部的包文件
软件源
首先移除现有的软件源(备份现有软件源至 /etc/zypp/repos.d/old 路径下):
mkdir /etc/zypp/repos.d/old mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old
然后添加新的软件源(具体操作取决于操作系统架构):
- x86, x86_64:
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update
- aarch64:
zypper ar -f -c http://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss repo-oss zypper ar -f -c http://download.opensuse.org/ports/aarch64/debug/tumbleweed/repo/oss/ repo-debug zypper ar -f -c http://download.opensuse.org/ports/aarch64/update/tumbleweed/ repo-update
你也可以选择性的添加 sources 软件源,当然也可以添加要使用的 OBS 源:
- x86, x86_64:
zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-oss repo-src-oss zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-non-oss repo-src-non-oss
- aarch64:
zypper ar -f -d -c http://download.opensuse.org/ports/aarch64/source/tumbleweed/repo/oss/ repo-src-oss
最终你会看到和下表类似的软件源列表:
# zypper lr -u # | Alias | Name | Enabled | Refresh | URI --+-------------------+-------------------+---------+---------+-------------------------------------------------------- 1 | repo-debug | repo-debug | Yes | Yes | http://download.opensuse.org/tumbleweed/repo/debug 2 | repo-non-oss | repo-non-oss | Yes | Yes | http://download.opensuse.org/tumbleweed/repo/non-oss 3 | repo-oss | repo-oss | Yes | Yes | http://download.opensuse.org/tumbleweed/repo/oss 4 | repo-src-non-oss | repo-src-non-oss | No | Yes | http://download.opensuse.org/tumbleweed/repo/src-non-oss 5 | repo-src-oss | repo-src-oss | No | Yes | http://download.opensuse.org/tumbleweed/repo/src-oss 6 | update | repo-update | Yes | Yes | http://download.opensuse.org/update/tumbleweed/
update 源通常是空的,仅在当下一个版本的 Tumbleweed 快照延期同时又有重要的安全漏洞需要尽快修复的时候使用。
运行升级命令
当你完成了软件源的配置,就可以使用 zypper dup 来进行升级。
screen
会话中运行以下命令是一个好主意,以避免 zypper 在例如 X 停止工作的情况下被杀死。另外,你可以使用tmux
或 TTY 会话。zypper cc -a && zypper ref && zypper dup --allow-vendor-change
现在可以放松一下等待升级完成,愉快的使用我们的滚动更新版本。
同时不要忘了订阅 mailinglist 来了解开发的最新信息。
如果升级失败:请刷新 zypper 源
有时 zypper 升级失败是因为找不到类似这样的文件:
Retrieving: monitoring-tools-1.14.0-4.2.x86_64.rpm ......................................................................................................[error] File './x86_64/monitoring-tools-1.14.0-4.2.x86_64.rpm' not found on medium 'http://download.opensuse.org/repositories/server:/monitoring/openSUSE_Tumbleweed/'
当你进入 http://download.opensuse.org/repositories/server:/monitoring/openSUSE_Tumbleweed/x86_64/ 时发现多个版本的 monitoring-tools-*.x86_64.rpm 文件,上述错误通常意味着你的 zypper 本地配置与软件源不同步。请通过 zypper refresh 来解决, 使用如下的命令组合来正确升级:
zypper refresh --force zypper dist-upgrade