+ -
当前位置:首页 → 问答吧 → 奇怪的问题解决了:eselect 修改 /etc/profile.env 出错

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

时间:2008-04-15

来源:互联网

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
101texlive:PATH="/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就正常了!

作者: goodluck1982   发布时间: 2008-04-15

注释前有个空格?

作者: Blahster   发布时间: 2008-04-15

引用:
作者: Blahster
注释前有个空格?
不是一个空格,而是一串空格,不知为什么贴上来以后就不显示了。

作者: goodluck1982   发布时间: 2008-04-15