/ bin / sh adalah tautan simbolik yang tidak mengarah ke / bin / bash [ditutup]

10

Saya sedang menginstal lingkungan perangkat lunak dari papan percobaan Armadeus APF27DEV, dan ketika saya mencoba makeperintah itu, itu memberi saya pesan kesalahan berikut:

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

Untuk mengatasi kesalahan ini, saya telah mencoba mengubah semua shebang dari #!/bin/shmenjadi #!/bin/bash, dan saya juga mencoba baris perintah berikut:

ln -s /bin/bash /bin/sh

Tapi, semua yang saya lakukan tidak menyelesaikan masalah. Adakah yang bisa membantu saya mengatasi masalah ini?

Batur
sumber
2
Ini akan menjadi bug dalam perangkat lunak mereka sehingga Anda harus membawanya.
psusi

Jawaban:

22

Anda hampir berada di sana dengan perintah ln Anda - kecuali Anda mungkin perlu menyertakan flag -f ('force') untuk menimpa tautan lama - juga lebih baik menggunakan jalur relatif untuk target

sudo ln -sf bash /bin/sh

Setelah selesai menginstal, Anda dapat kembali ke sistem default dengan

sudo ln -sf dash /bin/sh

Seharusnya tidak perlu mengubah file script 'shebangs'

Steeldriver
sumber
2
Akan lebih baik untuk menjalankan sudo dpkg-reconffigure dashdan memilih opsi untuk tidak menggunakan tanda hubung untuk disediakan /bin/sh. Jika Anda melakukannya dengan dpkg, itu akan memperbarui bagian lain dari sistem Anda (seperti halaman manual) agar sesuai.
mkasberg
1

Masalahnya tidak boleh /bin/shmenunjuk pada dashkarena itu default (saya baru saja memeriksa ujung saya dan itu sama). Masalahnya harus di tempat lain; paket tampaknya tidak kompatibel dengan Ubuntu out-of-the-box.

Mungkin di Makefile Anda dapat menemukan baris yang mengeksekusi skrip melalui shsecara eksplisit, yaitu sh path/to/script. Ganti semua kejadian shuntuk bash, dan laporkan kembali hasil Anda.

Severo Raz
sumber
Terima kasih atas jawaban Anda!!! Saya tahu cara yang berbeda dari apa yang Anda katakan kepada saya.
batur