|
|
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 ATH="/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就正常了! |
|