Programming

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

procodes 2020. 2. 26. 22:46
반응형

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


이 질문에는 이미 답변이 있습니다.

내 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 명령 모드 (key Esc)로 들어가서 다음을 입력하십시오.

:set fileformat=unix

마지막으로 저장

:x! 또는 :wq!


dos 줄 끝 파일이있는 것 같습니다. 단서는 ^M입니다.

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

이 작업을 수행하는 dos2unix명령 줄 유틸리티가있을 수 있습니다.


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

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

구성 파일에는 간단한 LF 줄 끝 (유닉스 스타일) 대신 CRLF 줄 끝 (Windows 스타일)이 포함되어 있습니다 . Windows에서 FTP 모드 ASCII를 사용하여 전송 했습니까?

당신이 사용할 수있는

dos2unix configure

이 문제를 해결하거나 VI에서 열어 사용하기 :%s/^M//g;모두 교체하기 (사용 CTRL+ V, CTRL+ 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 ...

우분투 / 데비안 :

# apt-get install dos2unix

이것은 일반적으로 Windows에서 파일을 편집하고 일부 유닉스 기반 시스템에서 파일을 실행하려고 할 때 발생합니다.

Linux 포럼 에 제시된 솔루션은 저에게 효과적이었습니다.

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

도움이 되었기를 바랍니다.

추신 : 유닉스 / 리눅스 머신에 perl이 설치되어 있어야합니다.


OS X를 사용하는 경우 파일을 열고 다음을 선택하여 XCode에서 줄 끝을 변경할 수 있습니다

보기-> 텍스트-> 줄 끝-> 유닉스

메뉴 항목을 클릭 한 다음 저장을 클릭하십시오. 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

다른 문제 는이 링크를 시도하십시오 .


Linux에서 dos2unix 명령을 사용하여 저장된 파일을 변환하십시오. 예 :

dos2unix file_name

이 게시물 에 대한 pwc101의 의견 덕분 에이 명령은 Kali Linux에서 작동했습니다.

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

괄호 안의 비트를 교체하십시오 {}. , 키와 키를 함께 {ctrl+m}누르는 것을 의미 합니다.CtrlM


Kate에서도이 작업을 수행 할 수 있습니다.

  1. 파일을여십시오
  2. 도구 메뉴를 엽니 다
  3. 줄 끝 하위 메뉴를 펼치십시오.
  4. 유닉스 선택
  5. 파일을 저장하십시오 .

Windows 환경에서 스크립트를 작성하고 UNIX 환경에서 스크립트를 실행하려면 encodage에주의해야합니다.

dos2unix $ filePath


TextMate 또는 유사한 프로그램을 사용하는 경우 다른 이름으로 저장 한 다음 인코딩 LF대신을 선택하십시오 CRLF.


스크립트 이름 앞에 sh를 추가하면 제 경우에는 작동합니다.

참고 URL : https://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter



반응형