分类: 系统运维
2013-06-14 16:04:36
心血来潮,就将许久未升级(至少超过一年以上未升级了)的gentoo系统升级了一下,按标准方法升级,结果发现很多问题(郁闷),主要问题有:1,网卡名变了 2.第六、七步操作报错
gentoo系统升级的一般步骤
第一步:#emerge --sync //升级整个portage目录
也可以用eix-sync这个命令,不过用之前要配置一下,echo "*" > /etc/eix-sync.conf
第二步:#emerge portage //如果不是最新的portage,需要按提示执行此操作
第三步:#emerge python //如果不是最新的python,需要按提示执行此操作
第四步:#/usr/sbin/update-python //执行完emerge python后执行此操作
第五步:#emerge -avuDN world //按照 /var/lib/portage/world 文件下的包,重新构建整个系统
参数说明: --ask (-a) 控制Portage显示它要更新的软件包列表,并让您决定是否继续更新
--verbose (-v) 在屏幕上输出完整的文件列表
--update (-u) 更新包的最佳版本
--deep (-D) 更新系统中的每个软件包
--newuse (-N) USE标记变更后,要使Portage检查USE标记的变动是否导致
需要安装新的软件包或者将现有的包重新编译
第六步:#emerge -av --depclean //清除不需要(孤立)的软件包
第七步:#revdep-rebuild //gentoolkit包里面的一个软件,用来检查系统的依赖关系是否都满足,
自动安装没有满足关系的包
第八步:#dispatch-conf //更新系统的配置文件
第九步:#emerge -e world //本地重新编译整个系统,USE标记变化不大时不需执行
上面的方法只是升级系统的标准步骤,但是如果你的gentoo已经有很久没升级了,至少隔了一年多以上了,那在emerge -avuDN world 重构整个系统之前还要检查一些东西才行
1. eselest profile list #检查在不在正确的profile,如果不正确就重新指定一下,如果报"unable to parse profile"错误,可以参考:http://blog.chinaunix.net/uid-8874157-id-3762828.html
2. gcc-config -l #检查gcc是否指向正确的编译环境,如果没有就重新指向到正确的就行了(在这个地方吃了很大的亏,之前没有检查这个地方,在重构完系统后执行第七和八步时死活不行,各种报错都有,超级郁闷)
建议在整个系统升级完之后升级一下gcc,升级完gcc后用gcc-config指向到新的gcc,优先更新GCC的好处是,这样后面的重编译都可以选择最新的编译器,这样最新编译器会给系统带来或多或少的好处
总结:
LINUX系统不要随便重启,特别是出现错误的时候,有问题要仔细检查日志,另外像大版本升级操作在升级之前建议阅读升级指南和版本变更信息等。
我的这个gentoo服务器只是一个小预警服务器,不算太重要,中间重启了一次服务器(受维护windows服务器影响),整个升级过程犯了太多错误,需戒掉!!!