치명적인 오류: sys-devel/binutils 제거 - 이머지는 더 이상 작동하지 않습니다

치명적인 오류: sys-devel/binutils 제거 - 이머지는 더 이상 작동하지 않습니다

3주 전에 나는 시스템을 청소하고 치명적인 실수를 저질렀습니다. 음, 이유는 잘 모르겠지만 제거했습니다.시스템 개발/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

이머지의 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

무엇을 해야할지 제안해 주시나요? 어떤 팁이 있나요? 이 문제를 해결할 아이디어가 있나요? 알려줘요!

답변1

복사는 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단계 타르볼에서 라이브 시스템으로 이러한 파일/디렉토리를 (재귀적으로) 복사합니다. 그런 다음 실행 env-update하고 로그아웃했다가 다시 로그인하거나 source /etc/profile업데이트된 환경을 로드합니다. 모든 것이 제대로 작동하는지 확인한 후 가장 먼저 해야 할 일은 emerge binutils패키지를 올바르게 빌드하고 이를 월드 파일에 기록하는 것입니다.

이 후에도 여전히 문제가 발생하지 않으면 다른 패키지에 대해 프로세스를 반복해야 할 수도 있습니다. 최악의 경우 3단계 빌드에서 계층 구조를 복사할 수 있습니다 /usr. /bin그렇게 하는 경우 후속 조치를 취하고 emerge --sync모든 emerge -e world것을 다시 빌드하는 것이 좋습니다. 행운을 빌어요.

답변2

네, 캐시 말이 맞아요. 짧지만 빠르지는 않은 방법은 다음과 같습니다.

현재 stage3을 다음에서 다운로드하세요.https://www.gentoo.org/downloads/- 귀하의 아키텍처에 맞는 stage3를 사용하세요

/:에 압축을 풀거나 추출합니다.

xz --decompress stage3-*.xz
tar -xvf stage3*.tar -C /

환경 업데이트:

env-update
source /etc/profile

다시 (시간이 많이 걸릴 것입니다)

emerge -avqeDN @world

재시작

reboot

도움이 되었으면 좋겠습니다.

관련 정보