Error when bootstrapping CMake: MySQL 컴파일 설치 중 발생하는 오류 해결법

안녕하세요! 서버에 MySQL을 직접 컴파일해서 설치하려다 보면 한두 번쯤은 마주치는 에러들… 정말 당황스럽죠. 저도 CentOS 7.6 환경에서 MySQL 5.6.3을 설치하던 중에 애를 좀 먹었는데요. 특히 cmake를 돌리는 과정에서 계속 오류가 발생하더라고요. 혹시나 같은 문제로 고생하시는 분이 있을까 해서, 해결 과정을 정리해봤어요. 지금부터 하나씩 같이 살펴봐요!


1. 기본 환경과 문제 상황 요약

이번 작업은 CentOS 7.6에서 MySQL 5.6.3을 직접 컴파일 설치하는 과정이었어요. cmake는 2.8.6 버전을 사용했고요. 문제는 ./configure 단계에서 cmake 관련 에러가 뜨면서 시작됐죠. 일단 기본 설치 명령어를 실행해봤는데, 결과는 다음과 같았어요.

(아래는 실제 오류 화면 캡처예요. 그대로 따라 보셔도 됩니다)

cmake 컴파일 오류

오류 메시지에 따르면 ncurses-devel이 누락됐다는 내용이었고, 정확히는 부트스트랩 단계에서 필수 라이브러리를 찾지 못하는 거였어요. 음… 대충 감이 오시죠?


2. 원인 분석과 첫 번째 해결 방법

결국 핵심은 cmake가 컴파일 도중 ncurses 관련 헤더 파일을 찾지 못했다는 거였어요. 그래서 아래 명령어로 ncurses-devel을 먼저 설치했죠:

yum -y install ncurses-devel

설치 후 다시 시도했지만… 여전히 문제는 계속됐어요. 알고 보니 gcc-c++도 빠져 있었더라고요. cmake는 내부적으로 C++ 컴파일러가 필요한데, 그것도 같이 설치되어 있어야 했던 거예요. 아래 명령어로 해결했어요:

yum install gcc-c++ libstdc++-devel

이후에는 에러 없이 잘 넘어가더라고요. 오… 한 고비 넘겼다 싶었어요 ㅎㅎ


3. cmake 환경 설정 커맨드 수정하기

설치가 잘 되었어도, 기본 설정 값 때문에 다시 오류가 날 수 있어요. 그래서 cmake 실행 시 옵션을 조금 조정해줬습니다. 아래 명령어를 참고하시면 돼요.

cmake 컴파일 명령어

이 설정 값들에는 설치 경로, 시스템 구성, 문자셋 등이 포함돼 있고요. 저처럼 따로 지정하지 않으면 나중에 퍼미션 문제나 환경변수 이슈로 또 막히게 돼요. 가능한 이대로 넣는 걸 추천드려요. 실제로 대부분의 문제는 이 옵션에서 해결됩니다.


4. 의심되는 캐시 파일 제거 및 재설정

설정 과정에서 또 하나 중요한 게 있어요. 바로 CMakeCache.txt 파일인데요. cmake 명령어를 반복해서 실행하다 보면 이전 설정 정보가 이 파일에 저장돼서 새 설정이 무시될 수 있어요. 이럴 땐 과감하게 삭제해주셔야 해요.

rm CMakeCache.txt

삭제한 후, 다시 한 번 cmake 명령어를 실행하면 깔끔하게 새 설정으로 적용됩니다. 괜히 이전 캐시 정보 때문에 고생하지 마세요. 저도 삭제하고 나서야 말끔하게 넘어갔거든요.


5. 패키지 종속성까지 점검해야 완벽

여기까지 했는데도 계속 오류가 난다면? 네, 저처럼 의심되는 모든 패키지를 다시 설치해보는 것도 하나의 방법이에요. 특히 libstdc++-devel 같은 라이브러리가 없으면 MySQL이 내부적으로 사용하는 함수들을 제대로 못 불러오니까 꼭 확인해보세요.

yum install gcc-c++ libstdc++-devel

이 명령어로 종속성까지 다 맞춰주고 나면 대부분의 환경에서 cmake가 성공적으로 실행돼요. 이후 make && make install도 무난하게 진행됐어요. 저는 이걸 몰라서 반나절을 헤맸다는…ㅎㅎ


6. 실전 팁 하나! 설치 순서 꼭 지키기

컴파일 설치할 때 순서가 생각보다 중요하더라고요. 제가 적용한 순서를 정리해드릴게요.

  1. 필수 패키지 먼저 설치: yum install ncurses-devel gcc-c++ libstdc++-devel
  2. 이전 설정 캐시 삭제: rm -rf CMakeCache.txt
  3. 환경 설정 후 cmake 실행
  4. make && make install

이 순서만 잘 지켜도 대부분 오류는 발생하지 않아요. 특히 CMake 단계에서 꼬이면 시간만 낭비하게 되니까 미리미리 체크하시면 좋아요!


Q1. CMake Error: Cannot find appropriate C compiler라는 오류는 왜 발생하나요?
A1. 시스템에 C 컴파일러(gcc)가 설치되어 있지 않거나 경로가 제대로 잡혀 있지 않을 때 발생해요. yum install gcc 명령어로 설치하고, which gcc로 경로도 꼭 확인해보세요.

Q2. ncurses-devel은 꼭 설치해야 하나요?
A2. 네, MySQL 컴파일 시 텍스트 UI나 터미널 기반 입력 처리를 위한 ncurses 라이브러리를 사용하는데, 이게 없으면 cmake가 실패합니다.

Q3. CMakeCache.txt 파일은 어떤 역할을 하나요?
A3. cmake 실행 시 이전 구성 정보들이 저장되는 캐시 파일이에요. 설정을 바꿨다면 반드시 삭제 후 재실행해야 변경 내용이 반영돼요.

Q4. make 과정에서 에러가 난다면 어디서부터 봐야 하나요?
A4. 대부분은 cmake 설정 문제나 라이브러리 누락 때문이에요. CMakeFiles 폴더 안의 로그를 먼저 확인하고, 패키지 의존성부터 다시 점검해보세요.

Q5. 다른 버전의 MySQL도 같은 방식으로 설치 가능한가요?
A5. 네, 원리는 같지만 버전별로 요구하는 라이브러리가 다를 수 있어요. 공식 문서에서 필요한 의존 패키지를 먼저 확인하는 걸 추천드려요.


MySQL을 소스에서 직접 설치할 때는 진짜 별별 오류가 다 나와요. 저도 이번에 cmake 오류 하나 때문에 엄청 헤맸는데요, 그래도 이렇게 과정을 정리해두니까 다음엔 훨씬 수월할 것 같더라고요. 혹시라도 저처럼 당황하셨던 분들께 조금이나마 도움이 되었길 바래요.

혹시 비슷한 경험 있으셨다면 댓글로 공유해주시고요! 다음 글에서는 make install 이후 설정 과정까지 다뤄볼게요. 궁금한 거 있으면 언제든 질문 남겨주세요 🙂