2008년 07월 22일
CentOS 5.2에서 cmake Source RPM으로 설치하기
Purewell.BIZ : CentOS 5.1에서 cmake Source RPM으로 설치하기
CentOS 5.1(i386)에서 cmake 2.4를 잘 설치했다. 그런데 CentOS 5.2(x86_64)에 cmake 2.6.x 를 예전 방식으로 설치하려니까 뜬금 없이 cmake를 빌드하는 곳에서 "QT qmake not found" 라고 하면서 빌드 실패 떨구네. 헐~ 'rpmbuild -bb cmake.spec'만 한 것이라 왠만한 의존성은 RPM이 알아서 오류를 미리 내뿜어줄텐데 그것도 아니고... qt4-devel 패키지도 잘 깔려 있지 말이지. 그나저나 qmake는 뭐래... 혹시나 해서 찾아봤더니 '/usr/lib64/qt4/bin/qmake'가 있네. 설마 PATH에 없다고 그런 건 아니겠지? 참고로 이하 root 계정으로 실행이다.
한 번에 안 되는고만... 일단 qmake는 PATH 때문인 것 같고, 이번 문제는 'desktop-file-install'이라는 이상한 실행파일이 --vendor라는 옵션을 요구하는데 안 해준 것 같다. CMakeLists.txt 파일 고치기 귀찮은데... PATH 해결한 것 정도의 꽁수가 필요해. 어떻게 하면 좋을까나. alias 먹여볼까?
안 먹는군. 그럼 '.bashrc'에 alias를 먹여볼까? 위 alias 구문을 ~/.bashrc에 살째기 덧붙이고 rpmbuild... 아흥~ 그래도 안 된다. 눈물을 머금고 spec 파일을 발라당 까뒤집어 보자... 대충 cmake.spec 파일에 desktop-file-install 구문이 있는데, 대충 --vendor옵션을 껴넣고 리빌드...
앗싸! 성공!
결론: PATH 잡아주고, cmake.spec 파일 살짝 수정해주면 된다.
'>
'>
CentOS 5.1(i386)에서 cmake 2.4를 잘 설치했다. 그런데 CentOS 5.2(x86_64)에 cmake 2.6.x 를 예전 방식으로 설치하려니까 뜬금 없이 cmake를 빌드하는 곳에서 "QT qmake not found" 라고 하면서 빌드 실패 떨구네. 헐~ 'rpmbuild -bb cmake.spec'만 한 것이라 왠만한 의존성은 RPM이 알아서 오류를 미리 내뿜어줄텐데 그것도 아니고... qt4-devel 패키지도 잘 깔려 있지 말이지. 그나저나 qmake는 뭐래... 혹시나 해서 찾아봤더니 '/usr/lib64/qt4/bin/qmake'가 있네. 설마 PATH에 없다고 그런 건 아니겠지? 참고로 이하 root 계정으로 실행이다.
$ export PATH=$PATH:/usr/lib64/qt4/bin
$ rpmbuild -bb cmake.spec
blarblar...
+ desktop-file-install --delete-original --dir=/var/tmp/cmake-2.6.0-1-root-root/usr/share/applications /var/tmp/cmake-2.6.0-1-root-root//usr/share/applications/CMake.desktop
Must specify the vendor namespace for these files with --vendor
error: Bad exit status from /var/tmp/rpm-tmp.96188 (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.96188 (%install)
한 번에 안 되는고만... 일단 qmake는 PATH 때문인 것 같고, 이번 문제는 'desktop-file-install'이라는 이상한 실행파일이 --vendor라는 옵션을 요구하는데 안 해준 것 같다. CMakeLists.txt 파일 고치기 귀찮은데... PATH 해결한 것 정도의 꽁수가 필요해. 어떻게 하면 좋을까나. alias 먹여볼까?
$ alias desktop-file-install='desktop-file-install --vendor=""'
$rpmbuild -bb cmake.spec
blarblarblar...
벤더없음 꿹!
안 먹는군. 그럼 '.bashrc'에 alias를 먹여볼까? 위 alias 구문을 ~/.bashrc에 살째기 덧붙이고 rpmbuild... 아흥~ 그래도 안 된다. 눈물을 머금고 spec 파일을 발라당 까뒤집어 보자... 대충 cmake.spec 파일에 desktop-file-install 구문이 있는데, 대충 --vendor옵션을 껴넣고 리빌드...
(생략)
desktop-file-install --delete-original --vendor='' \
--dir=%{buildroot}%{_datadir}/applications \
%{buildroot}/%{_datadir}/applications/CMake.desktop
(생략)
앗싸! 성공!
결론: PATH 잡아주고, cmake.spec 파일 살짝 수정해주면 된다.
# by | 2008/07/22 15:50 | IT | 트랙백 | 덧글(10)









삽질의 과정이 너무 거대해 보임 ㅋㅋ
cmake-2.6.1은 qt4를 RHEL5.2 정규로 제공하는 것보다 높은 버전(4.3.0)을 요구하여, 위보다 강도 높은 삽질이 필요합니다. (결국 컴팔햇다능~ 64bit용이라능~)
http://kldp.org/node/97832#comment-458358
에서 링크 걸었어요~ :-)
고생많이 하셨습니다.
저도 컴파일을 통해서 설치를 해보고 싶어서 cmake소스를 받아서 설치했는데 2.6.1이군요.
이거 버전이 높아서 안되는가 잘 모르겠네요.
다른건 rpm설치하고 그랬는데...
[root@localhost nateon-1.0]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nateon
-- Found Qt 3: /usr/lib/qt-3.3/lib/libqt-mt.so
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Didn't find KDE3 headers
-- Didn't find KDE3 core library
-- Didn't find the KDE3 dcopidl preprocessor
-- Didn't find the KDE3 dcopidl2cpp preprocessor
-- Found KDE3 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler
CMake Error at cmake/FindKDE3.cmake:258 (MESSAGE):
Could NOT find everything required for compiling KDE 3 programs
Call Stack (most recent call first):
CMakeLists.txt:17 (find_package)
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 2.6)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring done
[root@localhost nateon-1.0]#
저는 리눅스 네이트온 프로젝트를 관리하고 있습니다.
샘이님이 연락을 주셔서 답글을 달게 되었습니다~
-- Didn't find KDE3 headers
-- Didn't find KDE3 core library
-- Didn't find the KDE3 dcopidl preprocessor
-- Didn't find the KDE3 dcopidl2cpp preprocessor
-- Found KDE3 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler
CMake Error at cmake/FindKDE3.cmake:258 (MESSAGE):
Could NOT find everything required for compiling KDE 3 programs
Call Stack (most recent call first):
CMakeLists.txt:17 (find_package)
제가 보기에는 KDE3 관련 kdelibs 같은 것이 안깔려 있어서 에러가 나는것 같습니다.
INSTALL파일에서 요구사항을 한번 확인해 보시고 다시 설치를 해보시겠습니까?
그리고 소스에있는 CMakeLists.txt 파일을 보시면
cmake_minimum_required(VERSION 2.6)
내용이 있습니다.
이건 선언을 하라는 권고안을 따른것이니, (2.6버전이 있어야만 컴파일 되는게 아닙니다. ㅎㅎ)
이것이 문제가 되면 다음과 같이 주석처리를 하시고 컴파일을 진행 하시면 될 것 같습니다.
# cmake_minimum_required(VERSION 2.6)
마지막으로,
해당 내용이 "CentOS에서 cmake 설치" 와는 좀 벗어난것 같은 느낌이 듭니다.
리눅스 네이트온 프로젝트 (http://kldp.net/projects/nateon)의 help 게시판 (http://kldp.net/forum/forum.php?forum_id=4025)을 이용해 주시면 고맙겠습니다~ :-)