452 Stimmen

./configure : /bin/sh^M : schlechter Interpreter

Ich habe versucht, lpng142 auf meinem fed 12-System zu installieren. Scheint ein Problem zu sein. Ich erhalte diesen Fehler

[root@localhost lpng142]# ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
[root@localhost lpng142]# 

Wie kann ich das beheben? Die /etc/fstab Datei:

#
# /etc/fstab
# Created by anaconda on Wed May 26 18:12:05 2010
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=ce67cf79-22c3-45d4-8374-bd0075617cc8 /boot                   ext4    
defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

872voto

polymame Punkte 8636

Um dies zu beheben, öffnen Sie Ihr Skript mit vi oder vim und gehen Sie in den vi-Befehlsmodus (Taste Esc ), dann geben Sie dies ein:

:set fileformat=unix

Speichern Sie es schließlich

:x! o :wq!

384voto

Richard Punkte 9491

Sieht so aus, als hätten Sie eine Datei mit Dos-Zeilenende. Der Anhaltspunkt ist die ^M .

Sie müssen die Datei unter Verwendung von Unix-Zeilenenden neu speichern.

Sie haben vielleicht eine dos2unix Kommandozeilenprogramm, das dies ebenfalls für Sie erledigt.

131voto

Somaiah Kumbera Punkte 6384

Oder wenn Sie dies mit einem Skript tun möchten:

sed -i 's/\r//' filename

51voto

Konerak Punkte 38232

Ihre configure-Datei enthält CRLF-Zeilenenden (Windows-Stil) anstelle von einfachen LF-Zeilenenden (Unix-Stil). Haben Sie die Datei mit dem FTP-Modus ASCII von Windows aus übertragen?

Sie können verwenden

dos2unix configure

um dies zu beheben, oder öffnen Sie es in vi und verwenden Sie :%s/^M//g; um sie alle zu ersetzen (verwenden Sie CTRL + V , CTRL + M um das ^M zu erhalten)

30voto

wu liang Punkte 1933

Sie können den folgenden Befehl verwenden, um das Problem zu beheben

cat file_name.sh | tr -d '\r' > file_name.sh.new

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X