[Mac M1] h2 데이터베이스 설치 시 ./h2.sh: line 3: 23678 Trace/BPT trap: 5 오류 해결 로그
h2 설치
- h2 홈페이지에서([https://www.h2database.com]) zip파일로 다운로드
- 권한 주기:
chmod 755 h2.sh
- 실행:
./h2.sh
순조로웠으나, ./h2.sh 후에 에러 메시지가 떴다.
./h2.sh: line 3: 23678 Trace/BPT trap: 5 java -cp "$dir/h2-2.3.232.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"
검색해보았다.
동일한 에러가 발생되었다는 인프런의 글을 통해 해결할 수 있었다. (https://www.inflearn.com/community/questions/1066748/h2-%EC%8B%A4%ED%96%89-%EB%B6%88%EA%B0%80-%EB%AC%B8%EC%9D%98)
해결 방법: brew를 완전히 삭제하고, 재설치 한 후에, oracle-jdk 재설치한다.
나의 경우, brew와 java의 경로가 모두 일반적이지 않고, 꼬여 있어서 모두 삭제하고 재설치하는 방식으로 해결하였다.
1. Homebrew 수동 삭제
- Homebrew 관련 파일을 삭제한다.
sudo rm -rf /opt/homebrew
sudo rm -rf ~/Library/Caches/Homebrew
sudo rm -rf ~/Library/Preferences/org.homebrew.*
sudo rm -rf ~/Library/Logs/Homebrew
sudo rm -rf ~/Library/Application\ Support/Homebrew
sudo rm -rf ~/.brewconfig
- 환경 변수를 정리한다.
vi ~/.zshrc
로 ./zshrc를 열어서
eval "$(/opt/homebrew/bin/brew shellenv)"
export PATH="/opt/homebrew/bin:$PATH"
export PATH="/opt/homebrew/sbin:$PATH"
를 찾아 지워준다.
esc + ":wq" (저장하고 닫기)하고 enter 한 후
source ~/.zshrc
를 통해 환경변수를 적용해준다.
brew --version 을 입력했을 때 command not found가 나온다면 성공이다.
2. Homebrew 재설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
를 입력하고 enter 키를 눌러 설치를 시작한다.
설치가 종료되면
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
를 통해 homebrew 환경 변수를 설정해준다.
brew --version을 통해 설치를 확인한다.
Homebrew X.X.X 와 같이 버전이 뜬다면 성공이다.
3. Oracle JDK 17 설치
brew install --cask oracle-jdk
를 통해 재설치한 homebrew로 jdk를 설치한다.
java -version을 통해 설치가 잘 되었는지 확인한다.
4. JAVA_HOME
설정
나의 경우, JAVA 관련 환경변수와 brew 관련 환경변수가 완전 꼬여있어서 더욱 해결이 어려웠다.
환경 변수 설정은 반드시 해주는 것이 중요하다.
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
로 JAVA를 찾을 수 있도록 설정해주고,
echo $JAVA_HOME 를 통해 설정이 잘되었는지 확인한다.
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
와 같은 값이 나오면 성공이다.
이후에 다시 h2를 실행해보면 잘 되는 것을 확인할 수 있다.