./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에서 실행하려고 했습니다.그것은 잘못된 생각입니다.
- 메모장++(무료) 사본을 다운로드하여 직접 설치합니다.
- 메모장++에서 스크립트 파일을 엽니다.
- 파일 메뉴 -> 다른 이름으로 저장 ->
- 유형으로 저장:
Unix script file (*.sh;*.bsh)
- 새로운 .sh 파일을 Linux 시스템에 복사합니다.
- 한 최대 수:
chmod 755 the_script_filename
- 사용하여 합니다.
./the_script_filename
Windows 환경에서 스크립트를 작성하고 Unix 환경에서 실행하는 경우 인코딩에 주의해야 합니다.
dos2unix $filePath
스크립트 이름 앞에 sh를 추가하는 것만으로, 제 경우는 동작합니다.
TextMate 하는 경우 as로 에서 TextMate를 합니다.LF
CRLF
저장된 파일을 변환하려면 Linux에서 dos2unix 명령을 사용합니다.예:
dos2unix file_name
케이트에서도 할 수 있어요.
- 파일을 엽니다.
- 도구 메뉴를 엽니다.
- [ End Of Line ]서브메뉴를 펼칩니다.
- UNIX 선택
- 파일을 저장합니다.
언급URL : https://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter
'programing' 카테고리의 다른 글
INDEX/MATCH를 사용한 3차원 룩업 (0) | 2023.04.14 |
---|---|
공백과 따옴표가 있는 매개 변수를 사용하여 PowerShell에서 EXE 파일을 실행하는 방법 (0) | 2023.04.14 |
Bash에서는 파일의 각 행 뒤에 문자열을 추가하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
GitHub에서 분기된 저장소를 업데이트하거나 동기화하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
바이트 배열을 이미지로 변환(wpf) (0) | 2023.04.14 |