我在3周前清理了系统并犯了一个致命的错误。
嗯,我真的不知道为什么,但我卸载了 sys-devel / binutils 。
在我认识到我尝试重新出现的错误之后,但它不起作用。
下一步是从Gentoo下载stage3并将 sys-devel / binutils 从那里复制到本地树。
不起作用。
之后我去了假期并今天回来了,所以我需要解决这个问题,主要是不重新安装整个系统。
当我尝试出现像 x11-apps / xinput 这样的内容时,我会收到以下内容:
来自emerge的输出:
来自emerge的检查C编译器是否正常工作......没有 configure:error:在`/var/tmp/portage/x11-apps/xinput-1.6.2/work/xinput-1.6.2_build'中:
configure:错误:C编译器无法创建可执行文件
config.log:
来自/ usr / bin / as的configure:3372:检查C编译器是否正常工作 configure:3394:x86_64-pc-linux-gnu-gcc -m32 -march = core-avx-i -mtune = core-avx-i -O2 -pipe -Wl,-O1 -Wl, - as-needed conftest。 c>& 5
x86_64-pc-linux-gnu-gcc:内部编译器错误:非法指令(程序为)
ldd:
linux-vdso.so.1(0x00007ffee41b9000)
libopcodes-2.25.1.so => /usr/lib64/binutils/x86_64-pc-linux-gnu/2.25.1/libopcodes-2.25.1.so(0x00007f2045ff8000)
libbfd-2.25.1.so => /usr/lib64/binutils/x86_64-pc-linux-gnu/2.25.1/libbfd-2.25.1.so(0x00007f2045cd3000)
libz.so.1 => /lib64/libz.so.1(0x00007f2045abd000)
libc.so.6 => /lib64/libc.so.6(0x00007f2045722000)
libdl.so.2 => /lib64/libdl.so.2(0x00007f204551e000)
/lib64/ld-linux-x86-64.so.2(0x00007f204637f000)
使用:
有什么建议吗?任何提示?有什么想法要修复吗?让我知道!
答案 0 :(得分:1)
我曾经去过那里,虽然令人生畏,但这是可以控制的。在继续之前,你的工具链必须是理智的。去其他发行版获取文件,使用过时的工具链二进制文件转到Gentoo ISO,或者进行系统更新会让你处于更加不确定的状态。要纠正,您需要:
我假设您下载binutils软件包时已正确安装它。如果没有,命令应该是(对于版本2.25.1-r1):
cp binutils-2.25.1-r1.tbz2 /usr/portage/distfiles # assuming you use default location
chown portage.portage /usr/portage/distfiles/binutils-2.25.1-r1.tbz2
emerge -1 --usepkgonly =binutils-2.25.1-r1 # this will install binutils properly
如果这不起作用,您可以尝试将binutils解压缩到根目录,但这是危险且不推荐。如果你必须这样做,请确保你把" p" tar命令中的选项(保存权限),或者之前的情况会更糟。
现在安装了这个,很可能你的GCC配置文件将不再有效,这通常是" C编译器无法创建可执行文件"手段。这一切都需要在同一个终端完成:
gcc-config -l # Get a list of available gcc profiles
gcc-config 1 # Replace 1 with whichever gcc version is correct (for 4.9.3)
source /etc/profile
现在,运行test emerge(在您获取配置文件的同一终端中):
emerge -1 xinput # Using your example package
如果有效,您应关闭所有其他终端或在所有终端中提供个人资料,以确保您在开放会话中不会遇到环境问题。