Haulm哥哥发布2.6.0的时候,本座问过 是否可以在2.5.16的基础上在线升级 ,得到的答复是其中的glibc和gcc不能在线升级 ,于是本座后来就注意了, 在更新的时候没有允许对glibc和gcc的升级。
这几天 要研究blender的源代码,首先就要把它编译一次 。在编译过程中缺少一些底层 库的 开发 包,自然就到软件仓库 中去在线安装了。于是问题 就来了, 不记得是哪些包,只记得有些安装包必需 在升级 gcc的情况下才能安装 。于是本座一咬牙,升级gcc吧, 搞坏了顶多重装系统, LiveCD 重 装起来 快得狠。
于是 就升级gcc到仓库里的版本 4.7.2 了。马上带来 了 副作用,好像 有好几个软件要重新编译才能工作 ,其中本座明确记得的是okular,重新编译了之后才能打开PDF文件。 不管么样,还不太严重 ,编译 源代码是一件比较轻松的事 ,而且本座早已积累了这些软件的RPM打包脚本,还可以顺便打个新的RPM包 。
今天 又因为某个开发 库的原因要升级glibc,于是本座再次一咬牙升级了。 这次带来的问题大一些了。升级 了glibc,重启之后,看到大量后台进程报告这个错误: /etc/sysconfig/i18n: line 2: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF 。其中影响最大 是的wicd,报告错误之后退出 , 直接 就不能联网了。
有一点值得注意,KDE4在这种情况下表现良好,无缝地启用了备用语言“美式英语” ,不过plasma-desktop也因为这个问题的影响而无法启动了 。
于是 本座尝试调查一下原因。
localedef –list-archive 命令报告 说当前可用的区域语言选项只有一个 :aa_DJ.iso88591 。 本座检查了一下glibc和glibc-common两个包里与locale相关的文件 ,于是发现了有一个文件叫做“/usr/lib/locale/locale-archive”。马上 去那个目录下去看,发现locale-archive这个文件太小了,只有 340.6Ki B 。与之形成对比的是,同一目录下有个locale-archive.tmpl文件 ,有99.9MiB。 抱着试试看的心理 ,本座把 locale-archive.tmpl改名为locale-archive。然后尝试启动 了wicd, 狠高兴地发现wicd又正常工作了。
此时,系统 的语言还是英语,因为之前没找到zh_CN.UTF8的相关区域语言数据,系统自动 用了备用的语言。 再重启一次,系统语言就恢复成中文了。
这个问题可能是打包脚本中某处错误引起的。
为了避免以后遇到这种问题无法解决,最好把现在有的/usr/lib/locale/locale-archive文件备份一下。
HxLauncher: Launch Android applications by voice commands