/ 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

Чтобы устранить эту ошибку, я попытался изменить все shebangs с #!/bin/shна #!/bin/bash, и я также попробовал следующую командную строку:

ln -s /bin/bash /bin/sh

Но все, что я сделал, не решило проблему. Может ли кто-нибудь помочь мне с этой проблемой?

Батур
источник
2
Это было бы ошибкой в ​​их программном обеспечении, поэтому вам нужно будет их устранить.
psusi

Ответы:

22

Вы были почти там с вашей командой ln - за исключением того, что вам, вероятно, нужно было включить флаг -f ('force'), чтобы перезаписать старую ссылку - также предпочтительно использовать относительный путь для цели

sudo ln -sf bash /bin/sh

Когда вы закончите установку, вы можете вернуться к системе по умолчанию с помощью

sudo ln -sf dash /bin/sh

Там не должно быть необходимости изменять файл сценария «shebangs»

steeldriver
источник
2
Было бы лучше запустить sudo dpkg-reconffigure dashи выбрать вариант, чтобы не использовать тире для предоставления /bin/sh. Если вы сделаете это с помощью dpkg, он обновит другие части вашей системы (например, manpages), чтобы они соответствовали.
mkasberg
1

Проблема не должна /bin/shуказывать, dashпотому что это по умолчанию (я только что проверил на моем конце, и это было то же самое). Проблема должна быть в другом месте; пакет, кажется, не совместим с Ubuntu из коробки.

Возможно , в Makefile вы можете найти строку запуска скрипта через shявно, то есть sh path/to/script. Замените все такие случаи shдля bashи сообщите о своих результатах.

Северо Раз
источник
Спасибо за ваш ответ!!! Я знал другой способ из того, что вы мне сказали.
Батур