LinuxSir.cn,穿越时空的Linuxsir!

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

奇怪的问题解决了:eselect 修改 /etc/profile.env 出错

[复制链接]
发表于 2008-4-15 16:15:53 | 显示全部楼层 |阅读模式
emerge  -uDN world
当装到 ati-drivers 时,没装完就结束了
继续 emerge -uDN world,发现emerge命令出错,错误如下
ParseError: Invalid token 'LESSOPEN' (not '='): /etc/profile.env: line 19 in /etc/profile.env


然后去查看 /etc/profile.env,发现第18~21 行为
export #='10'
export Can=''
export NOT=''
export be=''

显然,export #='10' 一行有问题,把它注释掉后,emerge就正常了。

继续 emerge -uND world,可是ati-drivers依然没有装完就停了
再看 /etc/profile.env,又成了那个样子了。一看/etc/profile.env文件的开头,
原来这个文件是 eselect 自动产生的。于是我试了一下,把 profile.env改了,然后
执行 eselect opengl set ati之后,再看profile.env,又被改成那个有错误的了。

我知道 /etc/profile.env 是由 env-update 更新的,且每次emerge之后,
emerge会自动调用 env-update来更新 /etc/profile.env。谁知道这个可恶
的eselect也更新profile.env,还出错!错误就源于 emerge ati-drivers时
有一步是调用 eselect 执行 eselect opengl set ati,于是就改了profile.env.
可为什么eselect生成的profile.env会有错呢?

既然profile.env是env-update根据/etc/env.d中的文件生成的,那么
eselect会不会也是根据 /etc/env.d 中的文件生成的呢?于是进去查看
cd /etc/env.d
执行了一下 grep '#'  * ,结果如下
00basic:# /etc/env.d/00basic
03opengl:# Configuration file for eselect
03opengl:# This file has been automatically generated.
101texlive:#--------settings for texlive----------
101texlive:ROOTPATH="/usr/local/texlive/2007/bin/x86_64-linux"  # MUST be ROOTPATH
101texlive:                                                                   # Can NOT be PATH
101texliveATH="/usr/local/texlive/2007/bin/x86_64-linux"      # for ordinary user
101texlive:#--------------------------------------
45kdepaths-3.5:#KDE_IS_PRELINKED=1


啊哈,终于叫我给找到原因了!原来是我自己添加的一个文件,
/etc/env.d/101texlive  中空行的注释导致的,就是上面红字部分!
将其去掉后,再 eselect opengl set ati,结果生成的 /etc/profile.env就正常了!
发表于 2008-4-15 16:20:04 | 显示全部楼层
注释前有个空格?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-15 17:18:07 | 显示全部楼层
Post by Blahster;1838536
注释前有个空格?


不是一个空格,而是一串空格,不知为什么贴上来以后就不显示了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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