aws상에서 빌드를 하는게 계속 에러가 나서 로컬에서 빌드후 aws올리는 순서로 협업을 진행했었다. 문제는 다른 서버분이 git push를 하셨고 해당 플젝을 aws에 빌드해보기 위해 로컬에서 ./gradlew build를 하였다가 해당 에러를 마주하게 되었다.
이게 운영체제 차이로 gradlew 스크립트가 달라지는 모양이다.
팀원분의 운영체제는 윈도우였고 나는 맥이었기에 ^M 부분의 차이로 빌드를 할 수 없었다.
해결방법은 조금만 검색해도 많다.
그런데 나는 해당이 되지 않았다.
무수한 검색 내역들....
...이 많은 거를 다요..?
vi /bin/sh
다른 블로그는 -b [해당파일]로 명령어가 적혀져 있었는데
나는 뭘 넣어도 빈 파일이었다. vi [에러난 디렉토리]를 넣어야 간신히 ^M이 문제가 되는 파일에 들어갈 수 있었다.
설상가상으로 vi편집기가 readonly option is set (add to override)를 뜨면서 수정이 되지 않았다. :q! (저장x, 강제종료) 명령어 외에는 전부 에러.
수정후 저장이 되지 않으니 말짱 도루묵
권한 설정을 해도 마찬가지였다.
sudo chown [사용자이름] .
sudo chomod 775 [파일이름]
sed -i 's/\r//' {FILENAME}
명령어로 파일을 치환하면 된다고 하는데 나는 역시 해당되지 않았다.
터미널에 homebrew 설치
linux 콘솔에서 dos2unix filename.txt 와 같이 명령을 주어 파일을 변경한다.
당시 dos2unix를 잘 설치했음에도 아무런 변화가 없어서 난감했었다.
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