SSH를 사용하여 서버에 연결을 시도했습니다(인증에는 문제 없음).
이해합니다:
/bin/bash: No such file or directory
Connection to xxx closed.
전에는 정말 어리석은 짓을 해서 시스템을 망가뜨리기 전까지는 모든 것이 잘 작동했는데 지금은 연결할 수도 없습니다.
방금 이 서버에 우분투 16.04를 설치했습니다. 내가 원하는 것이 /usr/local/lib64에 설치되어 있는 것을 보았지만 이전 버전(12.04)에서는 /usr/lib64에 있었기 때문에 그렇게 했습니다.
mv /usr/local/lib64 /usr/
그 후에는 아무것도 작동하지 않습니다. 할 수 없습니다 . ls
작동하는 유일한 명령은 cd
종료하고 다시 연결하려고 하면 이 오류가 발생합니다. 이제는 연결이 안되서 재설치도 안되네요.
도와주세요, 감사합니다.
답변1
아직 Ubuntu 16.04를 어디에도 설치하지 않았지만 Linux 시스템 레이아웃의 현재 추세를 바탕으로 여기서 무슨 일이 일어나고 있는지 꽤 잘 추측할 수 있습니다.
/bin
와 /usr/bin
사이의 오래된 구별입니다. 즉, 일회용 USB 플래시 드라이브도 이제 전체 운영 체제를 설치할 수 있을 만큼 충분히 크기 때문에 더 이상 전통적으로 외부에 있는 단일 사용자 모드 도구와 어딘가에 격리된 다른 모든 도구를 구별할 필요가 없습니다./lib
/usr/lib
/usr
/usr
많은 소프트웨어가 여전히 이러한 구별을 믿고 있기 때문에(예를 들어 현재 Unix 또는 Linux 유형 시스템에는 /local
OR가 포함된 병렬 OR 트리가 없으므로 완전히 벗어날 수는 없습니다.) 최신 운영 체제에서는 이러한 오래된 일반적인 방식을 흐리게 합니다. 예를 들어 out to와 같이 심볼릭 링크 디렉토리에 모든 것을 설치하여 구별합니다. (그 반대도 마찬가지입니다. 중요하지 않습니다.)/share
/usr/local
/usr/share
/usr
/usr
/usr/bin
/bin
따라서 mv
명령으로 수행하는 작업은 "blowaway"이며 /usr
이는 아마도 시스템의 통합 OS 설치 디렉터리에 대한 심볼릭 링크일 것입니다. 이는 /usr/bin
그러한 것들을 대체할 뿐만 아니라 효과적으로 수행합니다 /bin
.
즉, /usr/local/lib64/bin/bash
과감한 "수정"을 수행하기 전에는 없었기 때문에 더 이상 a /usr/bin/bash
또는 a 가 없습니다 /bin/bash
.
해결책: 상자를 다음으로 부팅하십시오.구조 모드그리고 /usr
트리를 이전 상태로 복원합니다. 복원 방법을 이해하려면 기존의 작동 중인 Ubuntu 16.04 시스템을 참조용으로 필요할 수 있습니다.
원래 질문에 관해서는 귀하의 mv
명령이 결코 좋은 해결책이 아니었습니다. 명시적인 경로 없이 프로그램을 /usr/local/lib64
실행하려면 해당 프로그램을 셸에 추가하세요.PATH
바꾸다. 우분투에서는 편집을 의미할 수도 있습니다 ~/.bash_profile
.
디렉토리 에 대해 이야기하고 있으므로 실행 파일이 아니라 라이브러리를 다루고 있을 수 있습니다. 이 경우 디렉토리가 전역 라이브러리 캐시에 추가되도록 lib
항목을 추가해야 할 수도 있습니다 . 자세히보다./etc/ld.so.conf.d
man ldconfig