zsh: ./gradlew: bad interpreter: /bin/sh^m: no such file or directory 스프링부트 빌드 에러

Nam_JU·2022년 4월 25일
0

ErrorLog

목록 보기
16/26

공부 배경

aws상에서 빌드를 하는게 계속 에러가 나서 로컬에서 빌드후 aws올리는 순서로 협업을 진행했었다. 문제는 다른 서버분이 git push를 하셨고 해당 플젝을 aws에 빌드해보기 위해 로컬에서 ./gradlew build를 하였다가 해당 에러를 마주하게 되었다.


zsh: ./gradlew: bad interpreter: /bin/sh^m: no such file or directory

이게 운영체제 차이로 gradlew 스크립트가 달라지는 모양이다.
팀원분의 운영체제는 윈도우였고 나는 맥이었기에 ^M 부분의 차이로 빌드를 할 수 없었다.


해결방법

해결방법은 조금만 검색해도 많다.
그런데 나는 해당이 되지 않았다.

무수한 검색 내역들....


1. 해당 파일로 들어가서 ^M을 삭제하라

...이 많은 거를 다요..?

vi /bin/sh

다른 블로그는 -b [해당파일]로 명령어가 적혀져 있었는데
나는 뭘 넣어도 빈 파일이었다. vi [에러난 디렉토리]를 넣어야 간신히 ^M이 문제가 되는 파일에 들어갈 수 있었다.

설상가상으로 vi편집기가 readonly option is set (add to override)를 뜨면서 수정이 되지 않았다. :q! (저장x, 강제종료) 명령어 외에는 전부 에러.
수정후 저장이 되지 않으니 말짱 도루묵

권한 설정을 해도 마찬가지였다.

sudo chown [사용자이름] .

sudo chomod 775 [파일이름]

2. sed를 이용

sed -i 's/\r//' {FILENAME}

명령어로 파일을 치환하면 된다고 하는데 나는 역시 해당되지 않았다.


3. 나의 해결 방법 dos2unix

터미널에 homebrew 설치
linux 콘솔에서 dos2unix filename.txt 와 같이 명령을 주어 파일을 변경한다.

당시 dos2unix를 잘 설치했음에도 아무런 변화가 없어서 난감했었다.

명령어 dos2unix ./gradlew

zsh: ./gradlew: bad interpreter: /bin/sh^M: no such file or directory
-MacBookPro MoMo_JwtTest % dos2unix ./gradlew
dos2unix: converting file ./gradlew to Unix format...

최종적으로 명령어를 dos2unix ./gradlew로 하여서 변경이 되었다.
새벽 3시까지 삽질을 해도 해결할수 없어서 너무... 좌절스러웠는데 이제 운영체제 차이로 빌드오류는 잘 해결할 수 있을것 같다.



참고자료

https://noosphere.tistory.com/81
https://forgiveall.tistory.com/443
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=muri1004&logNo=220690434778
https://tod2.tistory.com/28

profile
개발기록

0개의 댓글