/ bin / sh는 / bin / bash를 가리 키지 않는 심볼릭 링크입니다.


10

Armadeus 실험 보드 APF27DEV의 소프트웨어 환경을 설치하고 있었고 make명령을 시도 할 때 다음 오류 메시지가 표시되었습니다.

On your system /bin/sh is a symbolic link that doesn't point to /bin/bash --> please correct that !
lrwxrwxrwx 1 root root 4 2013-08-03 20:57 /bin/sh -> dash

이 오류를 해결하기 위해 모든 shebang을에서 (으) #!/bin/sh로 변경 #!/bin/bash하려고 시도했으며 다음 명령 줄도 시도했습니다.

ln -s /bin/bash /bin/sh

그러나 내가 한 모든 일은 문제를 해결하지 못했습니다. 누구 든지이 문제를 해결할 수 있습니까?


2
이것은 소프트웨어의 버그 일 수 있으므로 버그를 해결해야합니다.
— psusi

답변:


22

이전 링크를 덮어 쓰기 위해 -f 플래그 ( 'force')를 포함해야한다는 점을 제외하고는 ln 명령을 사용하는 경우가 거의있었습니다. 또한 대상에 상대 경로를 사용하는 것이 좋습니다

sudo ln -sf bash /bin/sh

설치가 끝나면 다음을 사용하여 시스템 기본값으로 되돌릴 수 있습니다

sudo ln -sf dash /bin/sh

스크립트 파일 'shebangs'를 변경할 필요가 없습니다.


2
대시를 사용하여 제공 하지 않는sudo dpkg-reconffigure dash 옵션 을 실행 하고 선택하는 것이 좋습니다 . dpkg를 사용하면 시스템의 다른 부분 (예 : 맨 페이지)이 일치하도록 업데이트됩니다. /bin/sh
— mkasberg

1

문제는 기본값이기 때문에 /bin/sh지적 해서는 안됩니다 dash(방금 확인한 것과 동일합니다). 문제는 다른 곳에 있어야합니다. 패키지는 Ubuntu의 기본 제공 패키지와 호환되지 않는 것 같습니다.

아마도 Makefile에서 sh명시 적으로 스크립트를 실행하는 행을 찾을 수 있습니다 sh path/to/script. shfor의 모든 해당 항목을 바꾸고 bash결과를 다시보고하십시오.


답변 주셔서 감사합니다!!! 나는 당신이 나에게 말한 것과 다른 방법을 알고 있습니다.
— batur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.