CentOS ls는 dpkg를 사용합니다.

CentOS ls는 dpkg를 사용합니다.

CentOS 버전 6.9 HPC에 사용자로 로그인했습니다. 명령 을 시도하면 다음과 같은 ls결과가 나타납니다.

/usr/local/bin/ls: 96행: dpkg: 중단된 명령을 찾을 수 없습니다. 이 스크립트는 Ubuntu와 같은 배포판에서만 작동합니다.

해당 ls 파일을 열면 96행에 다음 행이 있습니다.

# (internal) The architecture of the local system
arch=$(dpkg --print-architecture)

나는 dpkg가 데비안이라는 것을 알고 있습니다. 이것이 CentOS에서 작동하지 않는 이유입니다. 그런데 왜 dpkg가 거기에 있는 걸까요? 간단한 것을 어떻게 실행합니까 ls?

답변1

질문 텍스트에서 볼 수 있듯이 ls명령은 디렉토리에서 가져옵니다 /usr/local/bin. 이는 PATH해당 디렉토리가 eg /usr/bin및 변수 value 보다 이전에 발견되었음을 의미합니다 /bin.

셸 시작 파일에서 변수 값의 순서를 변경하면(아마도 앞에 /bin및 를 추가하여) 셸이 또는 에 명령이 있다고 가정하여 에서 을 /usr/bin(를) 사용하지 못하게 해야 합니다 .ls/usr/local/binls/bin/usr/bin

PATH=/bin:/usr/bin:$PATH

이유 /usr/local/bin/ls쉘 스크립트입니다(아마도Ubuntu 관련 스크립트는 여기에서 찾을 수 있습니다.맬웨어는 아니지만 ls명령과 전혀 관련이 없음) 이 예외 현상이 ls실행 파일로 제한되는지, 아니면 /usr/local.

관련 정보