openSUSE 跨版本升级
准备工作
此方法通过网络跨版本升级,适合 Leap 升级到下一个发行版(如 42.2 升级到 42.3),也适合 Leap 升级为 Tumbleweed。首先必须确定升级的时候有足够的时间、靠谱的更新源和快速并稳定网络。然后整理磁盘内的数据,将不再用的软件包卸载,不需要的东西删除,避免一次下载过多的软件包花费大量时间和者升级过程中磁盘空间不足的情况发生(以往的真实经验:平均 256kb/s 的下载速度升级 3000+ 软件包花费5个小时)。换源升级之前最好用 zypper up 命令将现有软件升级到最新版减小软件升级跨度。另外跨版本升级有一定概率失败或出问题,切记要备份好重要文件和设置以防万一!
替换软件源
将当前的软件源全部替换为将要升级版本的软件源。
方法一:一条命令直接替换(Tumbleweed 源结构略有不同,建议核对后用第二种方法。)
sudo sed -i "s/42.2/42.3/g" /etc/zypp/repos.d/*
方法二:
禁用当前所有的源,再加入将要升级版本的源。软件源名字和地址自己定义不要照搬,加入哪些源根据实际需要来决定。(升级成功后一定要及时整理软件源,否则误操作重新打开了所有的源就麻烦了。)
sudo zypper mr -da sudo zypper ar -f http://mirrors.ustc.edu.cn/opensuse/distribution/leap/42.3/repo/oss/ USTC-OSS sudo zypper ar -f http://mirrors.ustc.edu.cn/opensuse/distribution/leap/42.3/repo/non-oss/ USTC-NON-OSS sudo zypper ar -f http://mirrors.ustc.edu.cn/opensuse/update/leap/42.3/non-oss/ USTC-UP-O sudo zypper ar -f http://mirrors.ustc.edu.cn/opensuse/update/leap/42.3/oss/ USTC-UP-N sudo zypper ar -f http://packman.inode.at/suse/openSUSE_Leap_42.3/ packman
方法三:
直接去 YaST 界面一个个手动替换。
刷新源
sudo zypper ref
升级系统
这一步依旧建议先 Ctrl+Alt+F1 切换到控制台登录后执行。毕竟全面升级在不同桌面环境和升级状况下有一定概率造成桌面环境崩溃,黑屏甚至虚拟终端程序中途退出中断升级等问题,经验不足的情况下非常容易损坏系统。
升级并自动应答
sudo zypper dup -y --auto-agree-with-licenses
或者执行升级命令后手动回答系统提问和指定设置
sudo zypper dup
整理软件和设置
更新过程全部顺利完成后重启,重新安装一些因为依赖关系被卸载掉的软件,必要的时候需整理第三方软件。少部分软件或系统功能可能需要重新设置,需要在使用过程中慢慢整理细节。
多媒体编解码器一定要重新核实一遍是否都来自 packman 源,就像以前全新安装时一样。
sudo zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_42.3/
一切顺利的话整个系统就直接升级到新版本了。命令非常少,不必制作安装盘格式化分区,更避免了每新装一次系统又要从头开始进行各种安装和配置非常方便。