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/
一切顺利的话整个系统就直接升级到新版本了。命令非常少,不必制作安装盘格式化分区,更避免了每新装一次系统又要从头开始进行各种安装和配置非常方便。
openSUSE 跨版本升级的更多相关文章
- android技巧(四)数据库跨版本升级写法
当项目中接手的需求需要在就前数据库数据表做出修改时,不得不面对数据库表结构的更新问题.一般的sqlite数据库更新修改数据库版本号时都会自动调用SqliteOptenHelper及其子类中的onUpg ...
- OpenShift跨版本升级
官方的in-place upgrade直接在线升级的参考链接 https://docs.openshift.com/container-platform/3.11/upgrading/automate ...
- Debian 跨版本升级
相对于某些重量级 Linux 发行版而言,同样是通过网络跨版本升级,Debian 的升级过程总要显得轻快很多.不会因为要下载数量惊人的软件包并安装而把升级时间拉得很长,也不用担心中途某些程序崩溃退出导 ...
- ES跨版本升级?——难道升级集群发生shard allocation是因为要分配replica节点???
Full cluster restart upgrade Elasticsearch requires a full cluster restart when upgrading across maj ...
- Android SQLite数据库版本升级原理解析
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下. 一.软件v1.0 安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHel ...
- android项目数据库升级跨版本管理解决方案
目前公司android项目普遍使用框架对数据库进行操作,数据库表与数据实体都具有严格的对应的关系,但是数据库的升依赖不同版本间的升级脚本,如果应用跨多版本进行升级时,当缺失部分升级脚本时就会导致应用异 ...
- APP版本升级,测试用例总结
APP升级主要在线升级.离线升级.当有新版本时,提示更新,用户点击更新,下载最新版本,进行安装升级,这种就是在线升级:已有升级包,安装升级包进行升级,这种就是离线升级. 在线升级.离线升级常见测试用例 ...
- 转载:Android SQLite数据库版本升级原理解析
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下. 一.软件v1.0 安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHel ...
- MySQL升级
MySQL的升级相对来说还是比较简单的. 它支持两种方式的升级: 原地升级(In-place Upgrade) 关闭数据库,替换旧的二进制文件,重启数据库,执行mysql_upgrade 逻辑升级(L ...
随机推荐
- 分享知识-快乐自己:oracle12c创建用户提示ORA-65096:公用用户名或角色无效
今天在oracle12c上创建用户,报错了.如下图: 我很郁闷, 就打开了oracle官方网站找了下, 发现创建用户是有限制的. 2.解决方案 创建用户的时候用户名以c##或者C##开头即可. 错误写 ...
- JS获取首字母
function pySegSort(arr, empty) { if (!String.prototype.localeCompare) return null; var letters = &qu ...
- nginx websocket
前两天折腾了下socketio,部署完发现通过nginx代理之后前端的socket无法和后端通信了,于是暴查一通,最后解决问题: location / { proxy_pass http://127. ...
- 剑指OFFER18 判断一个二叉树的子树
public class a18_IsSubTree { public static boolean hasSubTree(TreeNode treeRoot1, TreeNode treeRoot2 ...
- CSS实现简单无缝滚动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MySQL记录_20160919
1.首先先看下什么是MySQL. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,其开放源码这一特点 ...
- AtCoder Regular Contest 073 E:Ball Coloring
题目传送门:https://arc073.contest.atcoder.jp/tasks/arc073_c 题目翻译 给你\(N\)个袋子,每个袋子里有俩白球,白球上写了数字.对于每一个袋子,你需要 ...
- python--面向对象(最全讲解)
http://www.cnblogs.com/Eva-J/articles/7293890.html 阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 ...
- C#窗体上绘制矩形
先上效果图 鼠标三个事件 private void Form1_MouseDown(object sender, MouseEventArgs e) { //记录开始点 this.mousedown ...
- sql web Admin 源码.net 升级
http://www.cnblogs.com/foundation/archive/2008/10/07/1305297.html