gentoo在启动过程中,很久以前就看到这样一条信息:
sort: sort.c:717: inittables_mb: Assertion `mblength != (size_t)-1 && mblength != (size_t)-2' failed.
因为一直没碰到啥明显问题,也就没管它。直到昨天,碰到了MS很严重的问题,emerge不工作了,emerge总会出来下面的信息:
>>> Source compiled.
sort: sort.c:717:inittables_mb: 断言“mblength != (size_t)-1 && mblength != (size_t)-2”失败。
>>> Test phase [not enabled]: sys-apps/mlocate-0.21
sort: sort.c:717:inittables_mb: 断言“mblength != (size_t)-1 && mblength != (size_t)-2”失败。
sort: sort.c:717:inittables_mb: 断言“mblength != (size_t)-1 && mblength != (size_t)-2”失败。
sort: sort.c:717:inittables_mb: 断言“mblength != (size_t)-1 && mblength != (size_t)-2”失败。
ACCESS DENIED open_wr: /dev/null
/usr/lib/portage/bin/isolated-functions.sh: line 346: /dev/null: 权限不够
ACCESS DENIED open_rd: /usr/portage/profiles/base/profile.bashrc
/usr/lib/portage/bin/ebuild.sh: line 37: /usr/portage/profiles/base/profile.bashrc: 权限不够
ACCESS DENIED execve: /bin/rm
ACCESS DENIED open_rd: /bin/rm
/usr/lib/portage/bin/ebuild.sh: line 954: /bin/rm: 成功
ACCESS DENIED execve: /bin/mkdir
ACCESS DENIED open_rd: /bin/mkdir
/usr/lib/portage/bin/ebuild.sh: line 955: /bin/mkdir: 没有那个文件或目录
>>> Install mlocate-0.21 into /var/tmp/portage/sys-apps/mlocate-0.21/image/ category sys-apps
ACCESS DENIED execve: /usr/lib/portage/bin/emake
ACCESS DENIED open_rd: /usr/lib/portage/bin/emake
/var/tmp/portage/sys-apps/mlocate-0.21/temp/environment: line 2058: /usr/lib/portage/bin/emake: 没有那个文件或目录
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
*
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* ERROR: sys-apps/mlocate-0.21 failed.
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* Call stack:
ACCESS DENIED execve: /bin/basename
ACCESS DENIED open_rd: /bin/basename
/usr/lib/portage/bin/isolated-functions.sh: line 35: /bin/basename: 没有那个文件或目录
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* , line 49: Called src_install
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* environment, line 2058: Called die
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* The specific snippet of code:
ACCESS DENIED execve: /bin/sed
ACCESS DENIED open_rd: /bin/sed
/usr/lib/portage/bin/isolated-functions.sh: line 77: /bin/sed: 没有那个文件或目 录
ACCESS DENIED execve: /bin/sed
ACCESS DENIED open_rd: /bin/sed
/usr/lib/portage/bin/isolated-functions.sh: line 90: /bin/sed: 没有那个文件或目 录
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* The die message:
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* emake install failed
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
*
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* If you need support, post the topmost build error, and the call stack if relevant.
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* A complete build log is located at '/var/tmp/portage/sys-apps/mlocate-0.21/temp/build.log'.
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
* The ebuild environment file is located at '/var/tmp/portage/sys-apps/mlocate-0.21/temp/environment'.
ACCESS DENIED open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR: 权限不够
*
ACCESS DENIED open_wr: /dev/null
/usr/lib/portage/bin/isolated-functions.sh: line 132: /dev/null: 权限不够
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/var/log/sandbox/sandbox-27227.log"
open_wr: /dev/null
open_rd: /usr/portage/profiles/base/profile.bashrc
execve: /bin/rm
open_rd: /bin/rm
execve: /bin/mkdir
open_rd: /bin/mkdir
execve: /usr/lib/portage/bin/emake
open_rd: /usr/lib/portage/bin/emake
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
execve: /bin/basename
open_rd: /bin/basename
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
execve: /bin/sed
open_rd: /bin/sed
execve: /bin/sed
open_rd: /bin/sed
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /var/tmp/portage/sys-apps/mlocate-0.21/temp/logging/install.ERROR
open_wr: /dev/null
--------------------------------------------------------------------------------
* The ebuild phase 'install' has exited unexpectedly. This type of
* behavior is known to be triggered by things such as failed variable
* assignments (bug #190128) or bad substitution errors (bug #200313).
* Messages for package sys-apps/mlocate-0.21:
* The ebuild phase 'install' has exited unexpectedly. This type of
* behavior is known to be triggered by things such as failed variable
* assignments (bug #190128) or bad substitution errors (bug #200313).
我一下就蒙掉了,完全不知道怎么回事,只能仔细看这些信息。
对于sort: sort.c:717:inittables_mb: 断言“mblength != (size_t)-1 && mblength != (size_t)-2”失败。
因为开机有这个信息没有让我出啥大问题,我也就没想到从它入手,所以昨晚没有头绪,今天把这些log信息带到公司去问,得到说,可能是make.conf里面的FEATURES变量的问题,说把userpriv之类的变量去掉看看。
回家试验,还是不行,想起来早晨搜索到关于那个sort.c的错误信息,链接:http://calypso.tux.org/pipermail/xemacs-beta/2005-January/004283.html
看了大概,模模糊糊的,那就寻找关键部分了:I remember a bug report concerning "sort" where "sort" aborted when LC_TIME and LC_CTYPE were set to locales with different encodings
看样是这两个变量不一样的时候会出现那个问题,好吧,那就改改吧,关于locale的知识在我前面的文字里面有写。
还解决了个小问题,在控制台下,我想使用英文的locale,在KDE起来后想用中文的locale,这样,在控制台的时候就不会出现那些????了找找在X启动时候的脚本在哪儿呢,后来发现在root下的.xinitrc里面,在exec startkde之前加上export LC_CTYPE="zh_CN.gb2312"就搞定了。
修改了locale,发现emerge的问题解决了。不过,对怎么解决的还不明白,比较失败,只知道怎么解决而不懂其原理