
처음에는 /lib/ld-linux-so.3:No such file or directory
동적으로 크로스 컴파일된 바이너리를 실행하려고 할 때 발생하는 문제를 해결하려고 했습니다. 그래서 공유 바이너리를 /lib
. 에서 중요한 파일을 변경하거나 삭제했습니다 /lib
. 나는 그것이 어리석은 것처럼 보인다는 것을 안다.
이제 문제는 실행 가능한 바이너리를 실행하려고 할 때마다 다음 오류가 발생한다는 것입니다.
Error while loading shared libraries:libgcc-s.so.1:cannot open shared object file: No such file or directory.
다른 곳에서 libgcc-s.so.1
복사 했습니다 . /lib
누구든지 고칠 제안을 해주실 수 있나요 /lib
? 업데이트하거나 다시 설치해야 할 항목이 있나요? 감사해요.
답변1
외부 미디어(CD,USB)에서 우분투를 부팅한 다음 예를 들어 루트 파티션을 /mnt/root에 마운트해 보세요. 그런 다음 libgcc1
패키지를 다시 설치해 보면 명령은 다음과 같아야 합니다.
apt-get --root-directory=/mnt/root install libgcc1
이렇게 하면 libgcc 문제가 해결되지만 아마도 다른 라이브러리에 다른 문제가 있을 수도 있습니다. 실제 Linux에서 apt-get을 사용할 수 있을 때까지 이 과정을 반복하세요. 여기서 손상된 다른 라이브러리를 다시 설치할 수 있습니다.
힌트: Linux가 작동 중이거나 다른 우분투 Linux가 있는 경우 다음을 실행하여 필요한 각 파일의 패키지 이름을 찾을 수 있습니다.
apt-file search /lib/libgcc_s.so.1
힌트2: chroot가 유용할 수 있습니다. 누락된 라이브러리를 다시 설치하면 다음을 수행할 수 있습니다.
chroot /mnt/root /bin/sh
이렇게 하면 Linux를 재부팅하지 않고도 Linux가 올바르게 작동하는지 확인할 수 있으며 작동하지 않는 경우 외부 미디어로 돌아갈 수 있습니다.