网站导航:红联Linux门户导航

申请论坛任务,完成获得奖励

我能在红联做什么?

Linux新手讨论专区,初学者园地

IE9浏览器字体不好看的解决方法

开源新闻与评论,最新动态

我与Linux的故事,点评故事

Linux精华文档,迅速增加技能

学Linux必看 Linux系统应用贴子

游客可发贴及回复,全OK只需审核

Linux学习推荐阅读,每日更新

Linux新手必看,初学Linux贴子

用Fedora必看 Fedora技术教程

用Ubuntu必看 最新Ubuntu贴子

电子书:最新Linux教程发布下载

同城人(交友),结交Linux爱好者

Linux女生,女生报到专区

美图分享,心情桑拿院,精彩贴图

奇闻趣事,笑话怪事,笑翻天

灌水聊天,水吧,这里是灌水专区

返回列表 回复 发帖

Ubuntu Locale配置问题根源解决之道

作者:水滴石穿
常见错误

1. No such file 用locale命令的时候就会出现

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

2. perl warning, please check if supported 在apt-get install/remove的时候出现

perl: warning: Please check that your locale settings: LC_ALL = (unset), LC__FASTMSG = "true", LC_MESSAGES = "", LANG = "zh_CN" are supported and installed

相关命令

locale   查看现在的locale配置环境

localepurge 配置需要的locale(如果没有这个命令,用apt-get install localepurge安装)

locale-gen 生成需要的locale文件,

            参数 --purge用来删除所有旧的配置,在出现问题时很有用

相关的文件

其实在man locale-gen和man locale里面都讲到了,我还在网上查资料,浪费时间,悔之晚矣……

/usr/share/i18n/SUPPORTED
              List of supported values (and their associated encoding) for the
              locale  name.    This   representation   is   recommended   over
              --all-locales one, due being the system wide supported values.

/var/lib/locales/supported.d/*
              List all locales to generate.  File format is similar to /usr/share/i18n/SUPPORTED.

/usr/lib/locale/<locale_name>/LC_*
              Compiled locale data.这些就是用locale-gen编译出的locale文件了

/etc/environment 编辑这个文件可以手动配置locale环境变量,LC_CTYPE之类的,具体有哪些可配置的变量,都是什么含义,用man locale就能看到了

解决问题

很简单,重新生成所有的locale配置,其实网上的资料只是漏掉了--purge参数而已

第一步:配置自己想要的locale。普遍推荐的方法是拷贝所有ubuntu支持的locale到自己的配置文件里,然后编辑。

cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local

vi /var/lib/locales/supported.d/local,用dd命令删啊删,只留下en_系列和zh_系列, 或者其他你要的locale

rm /var/lib/locales/supported.d/en

rm /var/lib/locales/supported.d/zh 这两个文件跟local一样功能,也可以把en系列写在en文件里,zh系列写在zh文件里,分类方便而已。我既然都写在local里,这两个就用不着了。

第二步:重新生成locale支持文件

locale-gen --purge

这一步会将/usr/lib/locale/里面的locale支持文件删掉,重新生成。如果设置的locale没有生成过,或者设置的时候拼写错误,在这个目录找不到同名的支持文件就会提示No such file了。

第三步:配置locale环境。

敲locale把输出的那些环境变量拷贝到/etc/environment里面,自己手工修改。可以设的值就是/var/lib/locales/supported.d/local里面包括的值,或者生成在/usr/lib/locale/里面的文件夹名称。

第四步:退出重新登录,再敲locale看看,没错误了。

请教一下,第三步如何配置locale环境?
可否说的详细一些?
谢谢

有效的解决了我ubuntu10.04登录时界面变成英文的问题。支持一下。

返回列表
高级回复 | 发新话题
B Color Image Link Quote Code Smilies

社区简称“红联” 格言:天下没有难学的Linux!