programing

./configure : /bin/sh^M : 잘못된 인터프리터

stoneblock 2023. 4. 14. 21:05

./configure : /bin/sh^M : 잘못된 인터프리터

fed 12 시스템에 lpng142를 설치하려고 했습니다.나한테는 문제가 있는 것 같아.이 에러가 표시된다.

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

이거 어떻게 고쳐야 돼요?/etc/fstab파일:

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

수정하려면 vi 또는 vim을 사용하여 스크립트를 열고 vi 명령어모드(키)로 입력한 후 다음과 같이 입력합니다.

:set fileformat=unix

드디어 저장

:x!또는:wq!

DOS 행 종료 파일이 있는 것 같습니다.단서는^M.

UNIX 행 끝을 사용하여 파일을 다시 저장해야 합니다.

가 있을 수 있습니다.dos2unix커맨드 라인 유틸리티에 액세스 할 수 있습니다.

또는 스크립트를 사용하여 이 작업을 수행하는 경우:

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

설정 파일에는 단순한 LF 행 끝(unix 스타일)이 아닌 CRLF 행 끝(Windows 스타일)이 포함됩니다.Windows에서 FTP 모드 ASCII로 전송하셨나요?

사용할 수 있습니다.

dos2unix configure

이 문제를 해결하거나 vi로 열고 사용합니다.:%s/^M//g;모두 대체한다(+,V M+를 사용하여 ^M을 얻는다).

다음 명령을 사용하여 수정할 수 있습니다.

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

명령을 실행할 수 없는 경우

CentOS:

# yum install dos2unix*

# dos2unix filename.sh
dos2unix: converting file filename.sh to Unix format ...

Ubuntu / Debian :

# apt-get install dos2unix

이 문제는 보통 Windows에서 파일을 편집하고 Unix 기반 머신에서 실행하려고 할 때 발생합니다.

Linux Forum에 제시된 솔루션은 나에게 효과가 있었습니다(여러 번).

perl -i -pe's/\r$//;' <file name here>

이게 도움이 됐으면 좋겠다.

PS: UNIX/Linux 머신에 perl이 설치되어 있어야 합니다.

이 게시물에 대한 pwc101의 코멘트 덕분에 이 명령어는 Kali Linux에서 동작했습니다.

sed -i s/{ctrl+v}{ctrl+m}// {filename}

반드시 브래킷의 비트를 교환해 주세요.{}.예.{ctrl+m}키와 키를 함께 누르는 것을 의미합니다.

OS X 를 사용하고 있는 경우는, 파일을 열어, XCode 로 행의 끝을 변경할 수 있습니다.

표시 -> 텍스트 -> 행 끝 -> Unix

메뉴 항목, 저장 순으로 선택합니다.이것은 XCode 3.x용입니다.XCode 4에서도 비슷합니다.

Richard의 코멘트에 이어서.다음은 파일을 UNIX 행 엔딩으로 쉽게 변환할 수 있는 방법입니다.저와 같은 경우 Windows 메모장에서 작성한 후 Linux에서 실행하려고 했습니다.그것은 잘못된 생각입니다.

  1. 메모장++(무료) 사본을 다운로드하여 직접 설치합니다.
  2. 메모장++에서 스크립트 파일을 엽니다.
  3. 파일 메뉴 -> 다른 이름으로 저장 ->
  4. 유형으로 저장: Unix script file (*.sh;*.bsh)
  5. 새로운 .sh 파일을 Linux 시스템에 복사합니다.
  6. 한 최대 수:chmod 755 the_script_filename
  7. 사용하여 합니다../the_script_filename

다른 문제가 있을 경우 이 링크를 사용해 보십시오.

Windows 환경에서 스크립트를 작성하고 Unix 환경에서 실행하는 경우 인코딩에 주의해야 합니다.

dos2unix $filePath

스크립트 이름 앞에 sh를 추가하는 것만으로, 제 경우는 동작합니다.

TextMate 하는 경우 as로 에서 TextMate를 합니다.LFCRLF

저장된 파일을 변환하려면 Linux에서 dos2unix 명령을 사용합니다.예:

dos2unix file_name

케이트에서도 할 수 있어요.

  1. 파일을 엽니다.
  2. 도구 메뉴를 엽니다.
  3. [ End Of Line ]서브메뉴를 펼칩니다.
  4. UNIX 선택
  5. 파일을 저장합니다.

언급URL : https://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter