한 Linux 서버에서 다른 Linux 서버로 파일을 전송하고 있는데 /etc/*
이상한 오류가 발생합니다. 둘 다 데비안 스퀴즈입니다.
예를 들어 명령을 실행하면 ssh
오류가 발생합니다.
bash: /usr/bin/ssh: 해당 파일이나 디렉터리가 없습니다.
바이너리가 존재하는 것 같습니다.
-rwxr-xr-x 1 루트 루트 358756 9월 21일 14:30 /usr/bin/ssh
ss
Bash는 또한 내가 입력하고 를 누르면 명령을 자동 완성합니다 Tab. 재설치, 삭제 등을 시도했지만 아무것도 해결되지 않았습니다. 아래에 캐시된 것이 있을 수 있지만 /etc/
정확히 무엇인지는 모르겠습니다.
답변1
제 생각에는Jim Paris의 댓글맞다. 지정된 파일이 존재하더라도 해당 파일에 대한 동적 로더가 존재하지 않으면 "해당 파일 또는 디렉터리가 없습니다"라는 메시지가 표시됩니다. 일반적인 시나리오는 커널이 지원하지만 사용자 영역 시스템을 지원하지 않는 다른 아키텍처에서 바이너리를 실행하려고 시도하는 것입니다. 일반적으로 32비트 라이브러리가 설치되지 않은 64비트 시스템의 32비트 바이너리입니다. 바라보다64비트 시스템에서 32비트 바이너리를 실행할 때 "찾을 수 없음" 메시지 수신사건에 대한 자세한 설명입니다.
여기서는 /usr/bin/ssh
새 시스템의 다른 위치에 설치된 라이브러리를 사용할 수 있습니다. 동적 링커의 캐시 파일을 복사했기 때문에 /etc/ld.so.cache
동적 링커는 존재하지 않는 위치에서 라이브러리를 찾고 있습니다. 캐시를 업데이트하려면 실행하세요 ldconfig
.
또한 활성화했을 수도 있습니다.프리링크. 그렇다면 삭제해 주세요 /etc/prelink.cache
.