解决了一个疑难杂症

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的问题解决了。不过,对怎么解决的还不明白,比较失败,只知道怎么解决而不懂其原理

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值