/ 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.