spring 환경설정(1) bad interpreter: /bin/sh^M: no such file or directory 문제 해결법

성 우·2022년 12월 28일
0

로컬에 maven을 설치하지 않아도 사용할수 있도록 하기 위해 mvnw 파일을 실행시켜 설치한다.

./mvnw package 

를 실행하니 아래와 같은 에러가 발생했다.

zsh: permission denied: ./mvnw

permission denied 많이 보던 녀석이다. 권한 문제인듯 하다.
단순하게 해당 파일에 쓰기 권한을 부여해보았다.

//권한 부여
1. chmod -x {filename} 
2. chmod 757 {filename}

둘중에 하나를 사용하면된다.

권한을 부여를 하니.. 아래와 같은 이슈가 또 발생했다.

zsh: ./mvnw: bad interpreter: /bin/sh^M: no such file or directory

대충 읽어보니 mvnw 안에 뭔가 있어서는 안될 나쁜것 들이 적혀있다는것 같은데...
구글링을 해보니 아마 해당 프로젝트를 빌드해서 배포한 사람의 환경이 윈도우 인듯 하다.

파일 내용중 라인끝에 있는 개행문자(?)가 달라서 발생하는 문제이다.
vi 로 라인끝에 개행문자가 있는지 확인해보자.

아무리 찾아도 없다. 도대체 끝에 뭘 지우라는건가?

아래 명령어로 다시 파일을 열어보자

vi -b {filename}

우리 눈에 보이지 않던 문제를 일으키던 ^M 이 우리 눈에 나타났다.
이제 해당 문자들을 지워야하는데 한번에 지워 버릴 수 있는 명령어를 입력해보자.

vi -b {} 명령어로 해당 파일을 켜둔상태로 명령어를 입력해준다.

:%s/^M 
이때 중요한건 ^M 은 ctrl+v+m 을 쳐서 나오는 파란색 글씨로 보여야한다.
키보드로 하나하나 치는거 아닙니다.

:wq //저장![]

이렇게 하면 해당 파일이 잘 실행된다.

참고 블로그
https://jolly-sally.tistory.com/31
https://www.slipp.net/questions/468

profile
풀스택 개발자가 되고싶은 개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN