CUBRID는 open source DBMS로 모든 소스코드가 www.github.com/cubrid에 공개되어 있으며, CUBRID에 관심있는 누구든지 프로젝트에 참여할 수 있습니다.
그리고 CUBRID 제품 이슈는 http://jira.cubrid.org에서 관리되고 있습니다.
이 곳에서 자유롭게 CUBRID 이슈사항 등록 및 커뮤니케이션이 가능합니다.
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빌드를 위한 필수 패키지를 아래 명령어로 설치할 수 있습니다.
1 | 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설치를 위해서는 아래 패키지들이 추가적으로 필요합니다.
1 2 3 | 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기준)
1 2 3 4 5 6 7 | 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 설치여부를 확인할 수 있습니다.
1 | 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 변경없이 진행하였습니다.
1 2 3 | 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은 생략할 수 있습니다.)
1 | . /build .sh [option] [target] |
build.sh은 "make -j"를 사용하여 컴파일을 수행합니다.
리소스가 부족한 환경에서 "make -j"로 컴파일할 경우 out of memory error가 발생할 수 있습니다.
리소스가 부족하다고 판단되면 아래의 명령어를 통해 build.sh 내의 "make -j"를 "make -j 5"로 변경해주세요.
1 | sed -i "s/make -j/make -j 5/g" build.sh |
build.sh에 대한 도움말을 확인할 수 있습니다.
1 | . /build .sh -h |
build.sh의 대표 option에는 "-m"이 있으며, build mode를 설정할 수 있습니다.
build mode에는 "release", "debug"가 있으며, "release" build mode를 default로 하고 있습니다.
1 | . /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 빌드에 대한 소개를 마치겠습니다.