opensuse 跨版本升级后遇到的麻烦

跨版本升级
本文记录了从opensuse11.1直接升级到11.2的过程,包括修改安装源、更新zypper、进行跨版本升级的具体步骤及遇到的问题,如/boot分区空间不足、显卡驱动冲突及virtualbox启动失败等,并提供了相应的解决方案。

(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。

zypper refresh #刷新当前软件源
zypper in zypper #从11.2的软件源中,安装zypper

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

      好了,更新完zypper之后,就可以进行跨版本升级了。

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,执行:

sax2 -r -m 0=fglrx

 之后,在进行图形界面,显示终于正常了,不过KDE的窗口设置提示不支持混成扩展,这个还是有点不爽,不过特效本来就不太使用,暂时不管了。

      另一个重要的问题就是virtualbox了,更新了原来的包之后,virtualbox无法启动。执行:

/etc/init.d/vboxdrv restart

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

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的时候,不会去查询这个依赖关系,所以能够正常的加载这个模块。暂时先用这么恶心的方法吧,看看会不会有更新来修复这个问题。

采用PyQt5框架与Python编程语言构建图书信息管理平台 本项目基于Python编程环境,结合PyQt5图形界面开发库,设计实现了一套完整的图书信息管理解决方案。该系统主要面向图书馆、书店等机构的日常运营需求,通过模块化设计实现了图书信息的标准化管理流程。 系统架构采用典型的三层设计模式,包含数据存储层、业务逻辑层和用户界面层。数据持久化方案支持SQLite轻量级数据库与MySQL企业级数据库的双重配置选项,通过统一的数据库操作接口实现数据存取隔离。在数据建模方面,设计了包含图书基本信息、读者档案、借阅记录等核心数据实体,各实体间通过主外键约束建立关联关系。 核心功能模块包含六大子系统: 1. 图书编目管理:支持国际标准书号、中国图书馆分类法等专业元数据的规范化著录,提供批量导入与单条录入两种数据采集方式 2. 库存动态监控:实时追踪在架数量、借出状态、预约队列等流通指标,设置库存预警阈值自动提醒补货 3. 读者服务管理:建立完整的读者信用评价体系,记录借阅历史与违规行为,实施差异化借阅权限管理 4. 流通业务处理:涵盖借书登记、归还处理、续借申请、逾期计算等标准业务流程,支持射频识别技术设备集成 5. 统计报表生成:按日/月/年周期自动生成流通统计、热门图书排行、读者活跃度等多维度分析图表 6. 系统维护配置:提供用户权限分级管理、数据备份恢复、操作日志审计等管理功能 在技术实现层面,界面设计遵循Material Design设计规范,采用QSS样式表实现视觉定制化。通过信号槽机制实现前后端数据双向绑定,运用多线程处理技术保障界面响应流畅度。数据验证机制包含前端格式校验与后端业务规则双重保障,关键操作均设有二次确认流程。 该系统适用于中小型图书管理场景,通过可扩展的插件架构支持功能模块的灵活组合。开发过程中特别注重代码的可维护性,采用面向对象编程范式实现高内聚低耦合的组件设计,为后续功能迭代奠定技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值