LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 711|回复: 7

我发现两个非常有意思的事情,关于gdm和locale的,我和大家来分享一下。

[复制链接]
发表于 2010-1-12 15:52:42 | 显示全部楼层 |阅读模式
1.我现在用的是gnome,没有用gdm,装了gdm以后发现经常无法直接关机,后来就删除了gdm,结果发现还是老样子,所以不是gdm的问题。

2.现在就startx来进入gnome了,结果我又发现一个有意思的事,

运行emerge --info时,发现输出的结果里面有LANG和LC_ALL两变量,并且设置成了en_US.UTF-8,

于是我就找是从哪里读取的这两个变量,我全局的locale是没有设置的,所以系统的locale应该C,

后来想明白了,startx以后所以的进程都分享父进程的环境变量,我的普通用户设置的是en_US.UTF-8,

所以后续的所有操作都里面locale都是en_US.UTF-8,

我现在有一个问题,


你们说,这个算不算一个小bug呢,

因为我需要的不是en_US.UTF-8,但是由于我的普通用户设定成了en_US.UTF-8,所以在我使用普通用户->su->维护系统时,传递给了portage一个用户级别的设置。
发表于 2010-1-12 16:05:48 | 显示全部楼层
Post by fender010;2063724
1.我现在用的是gnome,没有用gdm,装了gdm以后发现经常无法直接关机,后来就删除了gdm,结果发现还是老样子,所以不是gdm的问题。

2.现在就startx来进入gnome了,结果我又发现一个有意思的事,

运行emerge --info时,发现输出的结果里面有LANG和LC_ALL两变量,并且设置成了en_US.UTF-8,

于是我就找是从哪里读取的这两个变量,我全局的locale是没有设置的,所以系统的locale应该C,

后来想明白了,startx以后所以的进程都分享父进程的环境变量,我的普通用户设置的是en_US.UTF-8,

所以后续的所有操作都里面locale都是en_US.UTF-8,

我现在有一个问题,


你们说,这个算不算一个小bug呢,

因为我需要的不是en_US.UTF-8,但是由于我的普通用户设定成了en_US.UTF-8,所以在我使用普通用户->su->维护系统时,传递给了portage一个用户级别的设置。


所以說一般建議用 su - 而不是 su
回复 支持 反对

使用道具 举报

发表于 2010-1-12 16:21:57 | 显示全部楼层
很正常,仅仅使用su的时候某些用户环境变量不会跟着改变,例如$PATH。

正如楼上所说,很多时候推荐用:
  1. su -
  2. su -l
  3. su --login
复制代码
三个同样效果。

或许你最好去了解一下login shell与non-login shell的区别。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 16:26:06 | 显示全部楼层
man了以下su了解了一下-这个option,

我以前就没有注意到,难到你们都是一直用su -吗?

我到今天才知道啊,为什么不让su=su -呢?
回复 支持 反对

使用道具 举报

发表于 2010-1-12 16:45:12 | 显示全部楼层
没有理解。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 17:45:45 | 显示全部楼层
我现在设定系统全局的locale=en_US.UTF-8了,

因为我记不住su -,而且上次emerge -e world时就是su变成root的,

这样设定以后可以保证整个系统的一致性。
回复 支持 反对

使用道具 举报

发表于 2010-1-12 20:10:03 | 显示全部楼层
Post by fender010;2063728
man了以下su了解了一下-这个option,

我以前就没有注意到,难到你们都是一直用su -吗?

我到今天才知道啊,为什么不让su=su -呢?


一直都用 su - ,根本不知道可以省略 "-" 的说……
回复 支持 反对

使用道具 举报

发表于 2010-1-12 20:41:27 | 显示全部楼层
一直用sudo的路过...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表