openSUSE升级问题说明及处理方法

系统 Linux
(edit by King) 昨天无聊,把自己电脑的系统从opensuse11.1直接跨版本升级了11.2,这个操作在家里的笔记本电脑上已经干过,当时最大的困难是重启后鼠标和键盘无法使用,需要修改xorg.conf。

记录下这次升级的流程:首先用yast管理安装源,把所有的安装源都从11.1的改成11.2,确保能够直接获得***的安装包。里面最重要的就是11.2的update, oss, non-oss这三个源,另外,我还把维护当前软件版本的源也都改成了11.2,如kde4, ati,virtualbox等,这样升级完成后就不用再去升级这些软件。然后要做的,就是升级zypper。

openSUSE升级Bash代码
zypper refresh #刷新当前软件源  
zypper in zypper #从11.2的软件源中,安装zypper 
zypper refresh #刷新当前软件源
zypper in zypper #从11.2的软件源中,安装zypper更新zypper的时候,可能会更新很多包,不管它了,反正等会儿都是需要更新的。11.2使用的zypper有很多好处,首先就是默认的下载后端变成了aria2,这样就能够通过metalink下载,同时也支持多线程进行下载;其次,它支持设置成先下载完成所有包后再进行安装,这个功能已经等了很长时间了,以前就遇到过因为网络问题下载中断,导致KDE更新了一般,无法启动,这个设置能够大大降低这样的风险;还有当然就是支持跨版本升级了,以前看见debian的apt-get支持dist update,感觉这个功能非常好,没有必要每次推出新的版本就去下载整张DVD光盘进行升级。
好了,更新完zypper之后,就可以进行跨版本升级了。

openSUSE升级Bash代码
zypper dup -d #先完成所有需要升级的包的下载  
zypper dup #使用已经下载好的包进行跨版本升级 
zypper dup -d #先完成所有需要升级的包的下载
zypper dup #使用已经下载好的包进行跨版本升级在进行跨版本升级的时候,就更加怕出现更新中断的情况,所以先下载所有需要更新的包是***的选择了。我在更新的时候,下载这些包大概话费了1.5G的硬盘空间。这些包默认的路径可以在zypper的配置文件中进行设置。

直接使用命令进行跨版本升级的***好处就是,在升级的过程中不会影响正常使用。等到所有包都更新完成后,就可以重新启动电脑了。杯具从此开始。
因为原来使用的是PAE的内核,这次升级的时候不光升级了PAE内核,也安装了default内核,看见介绍说desktop的内核对普通台式机有优化,又安装了desktop内核,这样就有三个内核了,导致的直接后果就是/boot分区空间不足了。/boot分区的空间我是直接根据opensuse11.1在安装时的推荐空间分配的,只有60多MB,不得已,把default内核删除。

然后遇到的问题,就是显卡驱动的问题,原来安装显卡驱动很顺利,在包管理器中安装完之后,在init 3中执行下sax2命令就可以了,这次再怎么尝试都没有用,进入桌面窗口移动的时候有明显的脱影,使用glxgears尽然直接报错:X Error of failed request: BadRequest (invalid request code or no such operation)。找了半天的原因,后来才发现,在ati的源里面的两个名称类似的包(ati-fglrxG01-kmp-desktop和ati-fglrxG02-kmp-desktop),提供的是相同路径相同名称的内核模块,这两个包是给不用芯片的显卡使用的,最初的时候为了方便就全部选上了。去掉ati-fglrxG01-kmp-desktop之后,进行init3,执行:

openSUSE升级Bash代码
sax2 -r -m 0=fglrx 
sax2 -r -m 0=fglrx 之后,在进行图形界面,显示终于正常了,不过KDE的窗口设置提示不支持混成扩展,这个还是有点不爽,不过特效本来就不太使用,暂时不管了。
另一个重要的问题就是virtualbox了,更新了原来的包之后,virtualbox无法启动。执行:

openSUSE升级Bash代码
/etc/init.d/vboxdrv restart 
/etc/init.d/vboxdrv restart 之后,发现提示:vboxguest: exports duplicate symbol RTMemExecFree (owned by vboxdrv),导致vboxnetflt这个内核模块无法正常被插入内核。查了很多地方的都找不到原因,***在一个bbs中找到了个暂时的解决方法,需要使用:

openSUSE升级Bash代码
insmod /lib/modules/2.6.31.12-0.1-desktop/updates/vboxnetflt.ko 
insmod /lib/modules/2.6.31.12-0.1-desktop/updates/vboxnetflt.ko 平时使用的modprobe太过于智能,会根据modules.dep文件中的依赖关系来插入内核,而这个文件里面的依赖关系貌似有点问题,updates/vboxnetflt.ko: updates/vboxguest.ko updates/vboxdrv.ko,根据里面的依赖,vboxnetflt模块依赖了vboxguest,应该是不需要的。当手工使用insmod的时候,不会去查询这个依赖关系,所以能够正常的加载这个模块。暂时先用这么恶心的方法吧,看看会不会有更新来修复这个问题。

【编辑推荐】

  1. 硬盘安装openSUSE11的具体实现
  2. 介绍lupa的4个openSUSE设置源
  3. Opensuse源列表推荐
  4. openSUSE安装源软件指南
  5. openSUSE mplayer编译安装的实现过程

 

责任编辑:chenqingxiang 来源: javaeye
相关推荐

2010-06-11 12:27:04

openSUSE mp

2010-06-08 14:01:18

OpenSUSE 安装

2010-06-11 12:49:52

openSUSE播放器

2013-11-27 09:38:11

OpenSUSE 13OpenSUSE 12

2010-06-11 17:23:28

openSUSE-10

2010-06-10 09:14:15

openSUSE使用

2010-06-11 09:13:20

openSUSE 网卡

2010-06-11 13:05:41

openSUSE视频

2010-06-09 15:08:08

Opensuse dv

2010-06-09 18:57:53

Opensuse安装

2010-06-11 16:46:06

openSUSE Fl

2010-06-09 09:39:42

Opensuse双系统

2010-06-08 19:09:47

OpenSUSE网络设

2010-06-09 13:03:00

Opensuse分区

2010-05-31 14:29:20

Cacti中文

2010-06-08 15:56:13

OpenSUSE光盘安

2010-06-09 19:04:44

Opensuse 字体

2016-11-14 10:06:04

大数据max位图

2009-07-01 15:45:39

JSP常见问题

2010-06-08 17:12:55

OpenSUSE 硬盘
点赞
收藏

51CTO技术栈公众号