17

I was installing the software environment of Armadeus experiment board APF27DEV, and when I tried the make command, it gave me the following error message:

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

To resolve this error, I've tried to change all the shebangs from #!/bin/sh to #!/bin/bash, and I've also tried the following command:

ln -s /bin/bash /bin/sh

But, all that I've done didn't resolve the problem. Could anyone please help me out with this problem?

cocomac
  • 3,043
  • 3
  • 16
  • 49
batur
  • 173
  • 1
  • 1
  • 4

2 Answers2

32

You were almost there with your ln command, except you probably needed to include the -f flag ('force') in order to overwrite the old link. Also it's preferable to use a relative path for the target:

sudo ln -sf bash /bin/sh

When you're done with the install, you can revert to the system default with:

sudo ln -sf dash /bin/sh

There should be no need to change the script file's shebangs.

BeastOfCaerbannog
  • 12,964
  • 10
  • 49
  • 77
steeldriver
  • 131,985
  • 21
  • 239
  • 326
  • 9
    It would be better to run `sudo dpkg-reconffigure dash` and choose the option to **not** use dash to provide `/bin/sh`. If you do it with dpkg, it will update other parts of your system (like the manpages) to match. – mkasberg Aug 12 '18 at 21:38
  • * `sudo dpkg-reconfigure dash` – jalalipop Mar 27 '23 at 18:30
2

The problem must not be /bin/sh pointing at dash because that's default (I just checked on my end and it was the same). The problem must be elsewhere; the package doesn't seem to be compatible with Ubuntu out-of-the-box.

Perhaps in the Makefile you may find a line executing a script through sh explicitly, i.e. sh path/to/script. Replace all such occurrences of sh for bash, and report back your results.

Severo Raz
  • 5,951
  • 4
  • 35
  • 44