제품 여행

CUBRID contribute의 첫걸음, CUBRID 빌드하기

by 이동현 posted Dec 01, 2017

CUBRID는 open source DBMS로 모든 소스코드가 www.github.com/cubrid에 공개되어 있으며, CUBRID에 관심있는 누구든지 프로젝트에 참여할 수 있습니다.

그리고 CUBRID 제품 이슈는 http://jira.cubrid.org에서 관리되고 있습니다.

이 곳에서 자유롭게 CUBRID 이슈사항 등록 및 커뮤니케이션이 가능합니다.


github.jpg


zira.png


open source에 contribute하는 방법에는 소스코드 수정 외에도 프로젝트 문서 수정, 이슈에 대한 정리 활동 등 다양한 방식이 있습니다.

이 중 소스코드 수정의 1단계인 CUBRID 빌드에 대해 소개하도록 하겠습니다.

이하 절차는 CentOS 6.9 x86_64에서 진행하였습니다.


1. 필수 패키지 설치

CUBRID 빌드를 수행하려면 아래의 패키지가 필요합니다.

> git(1.7.6이상), cmake(2.8이상), gcc-c++, systemtap, systemtap-sdt-devel, bison, flex, ncurses-devel, ant, elfutils-libelf-devel, libtool, rpm-build


CUBRID빌드를 위한 필수 패키지를 아래 명령어로 설치할 수 있습니다.

sudo yum install cmake gcc-c++ systemtap systemtap-sdt-devel bison flex ncurses-devel ant elfutils-libelf-devel libtool rpm-build


2. git설치

git은 CentOS 6.9에서 base repository를 통해 1.7.1까지만 설치 가능합니다.

CUBRID 빌드를 위해서는 1.7.6이상의 git이 필요하기 때문에 git 소스코드를 다운로드하여 설치하였습니다.

(자세한 내용은 https://git-scm.com/book/en/v2/Getting-Started-Installing-Git을 참조바랍니다.)


git설치를 위해서는 아래 패키지들이 추가적으로 필요합니다.

sudo yum install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel gcc epel-release
sudo yum --enablerepo=epel install docbook2X asciidoc xmlto
sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi


git 소스코드를 다운로드하여 git을 설치하였습니다. (git v2.15.0기준)

wget https://www.kernel.org/pub/software/scm/git/git-2.15.0.tar.gz
tar xvf git-2.15.0.tar.gz
cd git-2.15.0
make configure
./configure --prefix=/usr
make all doc info
sudo make install install-doc install-html install-info


git 설치여부를 확인할 수 있습니다.

git --version


3. JAVA_HOME설정

JAVA_HOME을 별도로 설정하지 않을 경우 build.sh에서 "/usr/java/default"를 JAVA_HOME으로 설정하게 됩니다.

해당 경로에 java가 없다면 빌드 에러가 발생하니 자바가 설치된 경로로 JAVA_HOME설정이 필요합니다.


4. CUBRID소스코드 다운로드

CUBRID 소스코드는 github에서 "cubrid"와 "cubrid-manager-server" 2가지 repository로 관리되고 있으며, 빌드를 위해서는 2가지 repository 모두 필요합니다.

각 repository 모두 기본 branch가 develop으로 설정되어 있으니 branch 변경없이 진행하였습니다.

git clone https://github.com/CUBRID/cubrid.git cubrid
cd cubrid
git clone https://github.com/CUBRID/cubrid-manager-server.git cubridmanager


5. CUBRID 빌드

CUBRID 빌드는 CUBRID 소스코드 내의 build.sh을 이용하여 진행할 수 있습니다.

아래와 같이 cubrid 디렉토리 내에 있는 build.sh 스크립트를 실행하면, 빌드가 진행됩니다.

(option과 target은 생략할 수 있습니다.)

./build.sh [option] [target]


build.sh은 "make -j"를 사용하여 컴파일을 수행합니다.

리소스가 부족한 환경에서 "make -j"로 컴파일할 경우 out of memory error가 발생할 수 있습니다.

리소스가 부족하다고 판단되면 아래의 명령어를 통해 build.sh 내의 "make -j"를 "make -j 5"로 변경해주세요.

sed -i "s/make -j/make -j 5/g" build.sh


build.sh에 대한 도움말을 확인할 수 있습니다.

./build.sh -h


build.sh의 대표 option에는 "-m"이 있으며,  build mode를 설정할 수 있습니다.

build mode에는 "release", "debug"가 있으며, "release" build mode를 default로 하고 있습니다.

./build.sh -m [build mode]


build.sh의 target에는 "all", "build"가 있습니다.

> all      : 빌드 및 배포 패키지를 생성합니다. (default) 

> build : 빌드만 수행하게 됩니다.


배포 패키지들은 "cubrid/build_x86_64_[build_mode] 디렉토리 안에 생성됩니다.

"release" build mode의 경우에는 "cubrid/build_x86_64_release"안에 배포 패키지가 생성되며, 배포 패키지 종류는 아래와 같습니다. (CUBRID 10.2기준)

CUBRID-10.2.0.7741-816b2ff97-Linux.x86_64.sh

CUBRID 설치파일 (shell script버젼)

CUBRID-10.2.0.7741-816b2ff97-Linux.x86_64.tar.gz

CUBRID 설치파일 (tar.gz버젼)

CUBRID-10.2.0.7741-816b2ff97-Linux.x86_64.rpm

CUBRID 설치파일 (rpm버젼)

cubrid-10.2.0.7741-816b2ff97.zip

CUBRID 소스파일 (zip압축)

cubrid-10.2.0.7741-816b2ff97.tar.gz

CUBRID 소스파일 (tar.gz압축)

JDBC-10.2.0.7741-cubrid.jar

CUBRID JDBC 드라이버

JDBC-10.2.0.7741-cubrid-src.jar

CUBRID JDBC 드라이버 소스파일

CUBRID-CCI-10.2.0.7741-816b2ff97-Linux.x86_64.tar.gz

CUBRID CCI 드라이버


이것으로 CUBRID 빌드에 대한 소개를 마치겠습니다.