Cubrid 2008 R2.0 버전 - 우분투에서 SRPM 빌드하기
알아둘일
2009. 8. 30. 20:41
큐브리드를 사용해보려고 테스트 중이다.
지난 8월에 2008 R2.0 버전이 새로 나왔다. 64bit 지원과 SRPM 지원이 눈에 띈다.
기존버전은 64bit 환경에 쓰기에는 애매한 부분이 있었다.
그래서 편법(?)으로 쓰기도 했다.(http://blog.1day1.org/312)
Centos(redhat 계열-rpm) 에서 빌드하는 것과 뭐가 다르지?
Centos 에서 cubrid SRPM 빌드를 해봤는데, 별다른 문제없이 빌드가 되었다.
우분투는 기본 패키지는 .deb 이지만, rpm 도 설치가 가능하다.(특이한 설정이 아니라면)
rpm 을 사용하기 위한 패키지를 설치한다. ( 우분투 hardy 버전에서 테스트 했다)
큐브리드도 SRPM 을 제공하기 때문에 우분투에서 빌드해보았다.
rpmbuild --rebuild 를 해보면 사전에 필요한 패키지들이 있다.
rpm 방식은 체크하는 방식이 차이가 있어서 해당 패키지를 설치해도 계속 에러가 난다.
그래서 SRPM 의 spec 을 수정해서 다시 SRPM 을 만들기로 했다.
SRPM 패키지 우분투용으로 다시 만들자
먼저 srpm 을 설치한다
SRPM을 설치하면 rpm/SOURCES 에 관련소스가 생기고, rpm/SPECS 에 설정파일이 생긴다.
rpm/SPECS/cubrid.spec 을 열어서
우분투에서는 rpmbuild 시 _sysconfdir 의 위치가 약간 다르게 나타난다.
SRPM 빌드 마지막 부분에 이 부분때문에 관련 파일을 찾을 수 없다는 에러가 나온다.
/usr/lib/rpm/x86_64-linux/macros 부분의
이제 SRPM 빌드해도 되나?
준비가 끝났으니 본격적으로 우분투에서 SRPM 빌드를 한다.
최종적으로 rpm 을 만들었는데, 이런에러가.
즉, 우분투에서는 설치된 패키지 정보가 rpm 에서 알 수 없어서 그런듯 하다.
일단 의존성 체크 없이 설치한다.
지난 8월에 2008 R2.0 버전이 새로 나왔다. 64bit 지원과 SRPM 지원이 눈에 띈다.
기존버전은 64bit 환경에 쓰기에는 애매한 부분이 있었다.
그래서 편법(?)으로 쓰기도 했다.(http://blog.1day1.org/312)
Centos(redhat 계열-rpm) 에서 빌드하는 것과 뭐가 다르지?
Centos 에서 cubrid SRPM 빌드를 해봤는데, 별다른 문제없이 빌드가 되었다.
우분투는 기본 패키지는 .deb 이지만, rpm 도 설치가 가능하다.(특이한 설정이 아니라면)
rpm 을 사용하기 위한 패키지를 설치한다. ( 우분투 hardy 버전에서 테스트 했다)
apt-get install rpm
큐브리드도 SRPM 을 제공하기 때문에 우분투에서 빌드해보았다.
rpmbuild --rebuild 를 해보면 사전에 필요한 패키지들이 있다.
elfutils-libelf-devel위 패키지 들에 해당하는 우분투 패키지는
ncurses-devel
libstdc++-devel
glibc-devel
apt-get install libelf-dev libncurses-dev libstdc++6-dev libc6-dev등에 해당한다.
rpm 방식은 체크하는 방식이 차이가 있어서 해당 패키지를 설치해도 계속 에러가 난다.
그래서 SRPM 의 spec 을 수정해서 다시 SRPM 을 만들기로 했다.
SRPM 패키지 우분투용으로 다시 만들자
먼저 srpm 을 설치한다
rpm -ivh CUBRID-8.2.0.1150-el5.src.rpm우분투에서는 /usr/src/rpm 에 rpmbuild 관련 파일,디렉토리가 있다.
SRPM을 설치하면 rpm/SOURCES 에 관련소스가 생기고, rpm/SPECS 에 설정파일이 생긴다.
rpm/SPECS/cubrid.spec 을 열어서
Requires: ncurses위 부분을 주석처리한다. 각 줄의 앞에 # 을 붙여준다.
Requires: libstdc++
BuildRequires: elfutils-libelf-devel
BuildRequires: ncurses-devel
BuildRequires: libstdc++-devel
BuildRequires: glibc-devel
우분투에서는 rpmbuild 시 _sysconfdir 의 위치가 약간 다르게 나타난다.
rpm --eval %{_sysconfdir}해보면 Centos 에서는 /etc 로 나오는데, 우분투는 /usr/etc 로 나온다.
SRPM 빌드 마지막 부분에 이 부분때문에 관련 파일을 찾을 수 없다는 에러가 나온다.
/usr/lib/rpm/x86_64-linux/macros 부분의
%_sysconfdir %{_prefix}/etc를 다음처럼 바꿔준다.
%_sysconfdir /etcSPEC 을 고친후에 SRPM 을 다시 만들어 준다.
rpmbuild -bs rpm/SPECS/cubrid.specrpm/SRPMS/ 에 다시 만든 SRPM 패키지가 생성된다.
이제 SRPM 빌드해도 되나?
준비가 끝났으니 본격적으로 우분투에서 SRPM 빌드를 한다.
rpmbuild --rebuild rpm/SRPMS/CUBRID-8.2.0.1150-el5.src.rpmCentos 와 마찬가지로 JAVA_HOME 설정, ant 등의 빌드시 필요한 패키지를 설치한다.
apt-get install sun-java6-jdk antmake , gcc 등의 개발에 필요한 패키지도 설치되어 있어야한다.(대부분 이미 설치되어 있을듯)JAVA_HOME=/usr/lib/jvm/java-6-sun
PATH=$JAVA_HOME/bin:$PATH:$HOME/binexport JAVA_HOME
export PATH
apt-get install build-essential
최종적으로 rpm 을 만들었는데, 이런에러가.
rpm -Uvh CUBRID-8.2.0.1150-el5.x86_64.rpm아! 나를 반기는 의존성 오류.
오류: Failed dependencies:이미 bash , sh 등이 설치되어 있지만, rpm 에서 체크하는 방식이 달라서 그런듯 하다.
/bin/bash is needed by CUBRID-8.2.0.1150-el5.x86_64
/bin/csh is needed by CUBRID-8.2.0.1150-el5.x86_64
/bin/sh is needed by CUBRID-8.2.0.1150-el5.x86_64
즉, 우분투에서는 설치된 패키지 정보가 rpm 에서 알 수 없어서 그런듯 하다.
일단 의존성 체크 없이 설치한다.
rpm -Uvh --nodeps CUBRID-8.2.0.1150-el5.x86_64.rpm
반응형
'알아둘일' 카테고리의 다른 글
qmail 우분투에서 SRPM 빌드하기 (0) | 2009.09.07 |
---|---|
YDN 의 역작! YQL 을 써보자. (5) | 2009.09.02 |
Cubrid 2008 R2.0 버전 - Centos 에서 SRPM 빌드하기 (0) | 2009.08.29 |
qmail 계정관리(vpopmail , qmailadmin) (0) | 2009.08.28 |
메일서버 , qmail 이젠 더 이상 어렵지 않다.(qmail + vpopmail) Centos (0) | 2009.08.27 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.
,