Gentoo

致命錯誤:解除安裝 sys-devel/binutils - 出現不再工作

  • August 17, 2019

三週前我清理了我的系統並犯了一個致命的錯誤。好吧,我真的不知道為什麼,但我解除安裝了sys-devel/binutils

在我認識到錯誤後,我嘗試重新出現,但它不起作用。下一步是從 Gentoo 下載 stage3 並sys-devel/binutils從那裡複製到本地樹。
沒用。

當我嘗試出現類似的東西x11-apps/xinput時,我收到以下資訊:

出現的輸出:

checking whether the C compiler works... no
configure: error: in `/var/tmp/portage/x11-apps/xinput-1.6.2/work/xinput-1.6.2_build':
configure: error: C compiler cannot create executables

來自emerge的config.log:

configure:3372: checking whether the C compiler works
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: internal compiler error: Illegal instruction (program as)

來自 /usr/bin/as 的 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)

使用:

  • 系統開發/binutils-2.25.1-r1
  • 系統開發/gcc-4.9.3

有什麼建議嗎?有什麼提示嗎?有什麼想法可以解決嗎?讓我知道!

複製sys-devel/binutils並沒有解決您的問題,因為這只是定義了binutils. 它不起作用,因為您需要該軟體包來建構任何東西,正如您已經意識到的那樣。您需要做的是複制屬於該包的文件。文件和目錄是:

/etc/env.d/binutils/x86_64-pc-linux-gnu-2.25.1
/usr/lib64/binutils/x86_64-pc-linux-gnu/*
/usr/share/binutils-data/x86_64-pc-linux-gnu/*
/usr/x86_64-pc-linux-gnu/binutils-bin/*

將這些文件/目錄從第 3 階段 tarball 複製(遞歸)到您的實時系統中。然後,執行env-update並註銷並重新登錄或source /etc/profile載入更新的環境。檢查一切是否正常,然後您應該做的第一件事是emerge binutils正確建構該軟體包並將其記錄在您的世界文件中。

如果,在這之後,你仍然不能emerge東西,你可能不得不用其他包重複這個過程。更糟糕的情況是,您可以從第 3 階段建構中複製/usr/bin層次結構,如果這樣做,我建議您跟進emerge --syncemerge -e world重建所有內容。祝你好運。

引用自:https://unix.stackexchange.com/questions/249391