Rocky Linux 9.5 에서 Cubrid 10.2 설치해본 후기

by HJOW posted Apr 18, 2025

지금도 열심히 해법 찾는 중이고

일단 결론은, 99% 성공 1% 실패 중입니다.


어디까지 성공했느냐


Cubrid 구동까지는 성공

systemd 등록도 성공 ! 

(Rocky Linux 에서는 LD_LIBRARY_PATH 도 안먹히네요)


참고로 Rocky Linux 9.5 에서는 /etc/init.d 에 넣는거 안먹힙니다.

이 디렉토리 가보면 README 텍스트 파일 하나 있는데, 열어보면, 여기 넣어봤자 쓸모 없으니 systemd 에 등록하라고 영어로 씌여있습니다.


-----------------------------------------------------------------------------------

실패한 부분은

OS 부팅하자마자 서비스가 기동은 되는 거 같은데

큐브리드 구성요소 4개 중 2개가 fail 뜹니다.

물론 ssh 들어가서 서비스 리스타트 해주면 4개 모두 잘 동작합니다.


[cubrid@linux ~]$ sudo systemctl status cubrid

[sudo] cubrid의 암호:

× cubrid.service - Cubrid Database

     Loaded: loaded (/etc/systemd/system/cubrid.service; enabled; preset: disabled)

     Active: failed (Result: exit-code) since Wed 2025-04-23 10:08:11 KST; 6min ago

   Duration: 13.322s

    Process: 1579 ExecStart=/cubrid/bin/cubrid service start (code=exited, status=1/FAILURE)

   Main PID: 1579 (code=exited, status=1/FAILURE)

        CPU: 109ms


 4월 23 10:08:11 linux.local cubrid[1579]: @ cubrid master start

 4월 23 10:08:11 linux.local cubrid[1579]: ++ cubrid master start: success

 4월 23 10:08:11 linux.local cubrid[1579]: @ cubrid server start: seongnam

 4월 23 10:08:11 linux.local cubrid[1579]: ++ cubrid server start: fail

 4월 23 10:08:11 linux.local cubrid[1579]: @ cubrid broker start

 4월 23 10:08:11 linux.local cubrid[1579]: ++ cubrid broker is running.

 4월 23 10:08:11 linux.local cubrid[1579]: @ cubrid manager server start

 4월 23 10:08:11 linux.local cubrid[1579]: ++ cubrid manager server start: fail

 4월 23 10:08:11 linux.local systemd[1]: cubrid.service: Main process exited, code=exited, status=1/FAILURE

 4월 23 10:08:11 linux.local systemd[1]: cubrid.service: Failed with result 'exit-code'.

[cubrid@linux ~]$ sudo systemctl restart cubrid

[cubrid@linux ~]$ sudo systemctl status cubrid

● cubrid.service - Cubrid Database

     Loaded: loaded (/etc/systemd/system/cubrid.service; enabled; preset: disabled)

     Active: active (running) since Wed 2025-04-23 10:17:17 KST; 1s ago

   Main PID: 1696 (cubrid)

      Tasks: 2 (limit: 37506)

     Memory: 2.7M

        CPU: 11ms

     CGroup: /system.slice/cubrid.service

             ├─1696 /cubrid/bin/cubrid service start

             └─1697 cub_master


 4월 23 10:17:17 linux.local systemd[1]: Started Cubrid Database.

[cubrid@linux ~]$



-----------------------------------------------------------------------------------



또 하나

내용 보면 대부분 rpm 찾아서 설치하는 부분이 있는데 (아래 0번째 파트)

제가 유지보수 해야하는 프로젝트가 공공기관쪽인데, 여기서 DB서버는 외부망 연결 안열여준다고 해서 그렇습니다.

여기서는 yum 명령어 일절 쓰지 못한다는 얘깁니다.

이것까지 감안하고 진행하였습니다.


여하튼

제 발자취를 시작합니다.


이 글 남긴 게 2트째 트라이 후 남긴 것이고

3트로 처음부터 다시 진행하여 일부 수정사항이 있습니다.



----------------------------------------------------------------

Rocky Linux 9.5, Cubrid 10.2 기준


0. 다음 파일들을 구한다.


       chkconfig-1.24-1.el9_5.1.x86_64.rpm

       glibc-2.34-125.el9_5.3.x86_64.rpm

       net-tools-2.0-0.64.20160912git.el9.x86_64.rpm

       systemd-252-46.el9_5.3.x86_64.rpm

       ncurses-compat-libs-6.2-10.20210508.el9.x86_64.rpm

       jdk-7u80-linux-x64.rpm

       CUBRID-10.2-latest-Linux.x86_64.sh


   (3트째 추가)

       glibc-all-langpacks-2.34-125.el9_5.3.x86_64.rpm

       glibc-common-2.34-125.el9_5.3.x86_64.rpm

       glibc-gconv-extra-2.34-125.el9_5.3.x86_64.rpm

               systemd-libs-252-46.el9_5.3.x86_64.rpm

       systemd-pam-252-46.el9_5.3.x86_64.rpm

       systemd-rpm-macros-252-46.el9_5.3.noarch.rpm

     

       

    rpm 파일들은 https://pkgs.org/ 에서 구할 수 있다.

    CUBRID 설치 파일은 https://ftp.cubrid.org/CUBRID_Engine/ 에서 구할 수 있다.


        rpm 버전 CUBRID 는 Rocky Linux 에서 설치 시 /etc/init.d/functions 를 찾을 수 없다며 구동되지 않는다.

        sh  버전으로 다운로드 받는다.


    참고로 외부망 연결이 가능한 상황이면

       

        yum install chkconfig

        yum install glibc

        yum install net-tools

        yum install systemd


    와 같은 방식으로 rpm 파일 없이 상당수 의존성 프로그램들을 설치해버릴 수 있다.


1. 사용자 계정 생성


    다음 명령어 sudo 권한으로 실행

    

        useradd cubrid -d /cubrid -G wheel

    

    사용자 계정이 생성됨.

    

        passwd cubrid

        

    비밀번호 입력 단계가 나오면, 입력하고 엔터 키를 누르면 된다.

    wheel 그룹을 사용하는지 확인하고,

        이제 sudo 권한에 wheel 그룹 사용여부를 확인하고, 계정 추가를 위해 다음 명령어를 실행한다. 

        

        visudo

        

    다음과 같이 어떤 파일이 vi 로 열린다.

    일부 내용만 가져와 보면...

    

        ## Allow root to run any commands anywhere

        root ALL=(ALL) ALL

        

        ## Allows people in group wheel to run all commands

        %wheel ALL=(ALL) ALL

    

    저 "%wheel ALL=(ALL) ALL" 가 존재하는지 확인하고, 존재하지 않는다면

    저 "root ALL=(ALL) ALL" 의 뒤에

    

        cubrid ALL=(ALL) ALL

        

    을 추가하고 저장하고 닫는다.

    

2. cubrid 계정으로 로그인


3. 파일 올리기 - FileZilla 나 MobaXterm 을 이용한다.

        cubrid 계정으로 /cubrid 에 rpm 및 sh 파일들을 올린다.

        

3. Java 설치 (sudo 권한)

   

    RPM 설치방법

        

        rpm -Uvh [rpm파일]

    

    예)

        rpm -Uvh jdk-7u80-linux-x64.rpm


    추가)

        --nodeps 옵션을 주면 의존성 검사 무시하고 설치를 진행할 수 있는 듯 하다.

        물론 이 경우 의존성 설치를 모두 마치지 않으면 어떤 일이 일어날 지 알 수 없다.

        3트에 추가된 파일들과 관련 패키지는 이 옵션 필수 

        (2트 때에는 GUI 환경에서 업뎃을 한번 받아서 이 문제가 없었나 보다.)


4. init.d 백업 후 삭제


    /etc 폴더로 이동

   

       cd /etc

    

    init.d 백업 (압축하기) - 모두 sudo 권한 필요

    

        tar -zcvf init.d.tar.gz init.d

        rm -rf init.d


5. chkconfig, glibc, 기타 의존성 설치


       chkconfig-1.24-1.el9_5.1.x86_64.rpm

       glibc-2.34-125.el9_5.3.x86_64.rpm

       net-tools-2.0-0.64.20160912git.el9.x86_64.rpm

       systemd-252-46.el9_5.3.x86_64.rpm

       ncurses-compat-libs-6.2-10.20210508.el9.x86_64.rpm


6. init.d 복원


    /etc 폴더로 이동

        

        cd /etc

        

    이미 init.d 폴더가 생성되어 있을 것이다.

    init.d.tar.gz 파일을 init.d 폴더 안으로 옮겨야 한다.

    sudo 권한 필요

    

        mv init.d.tar.gz init.d

        

    init.d 폴더로 이동

    

        cd /etc/init.d

        

    tar gz 파일 압축 해제 (sudo 권한 필요)

    

        tar -zxvf init.d.tar.gz

        

    이렇게 하면, init.d 폴더 안에 init.d 폴더가 있는 형태가 된다.

    폴더 안쪽으로 들어가 파일들을 밖으로 꺼낸다.

    mv 명령어 sudo 권한 필요

    

        cd init.d

        mv * ../

        cd ../

        

    이제 쓰임을 다한 파일과 폴더를 삭제한다. sudo 권한 필요

    

        cd /etc/init.d

        rm -rf init.d

        rm init.d.tar.gz

        

7. /cubrid 에서 불필요 파일을 지운다.


        cd /cubrid

        rm *.rpm


8. cubrid 파일을 다시 /cubrid 에 올린다.


        CUBRID-10.2-latest-Linux.x86_64.sh

        

    파일 권한을 755로 바꾼다. (sudo 권한 필요)

    

        chmod chmod 755 CUBRID*

        

9. sh 파일 실행


    다음 명령어를 sudo 없이 실행 (cubrid 계정으로)

    

        sh ./CUBRID-10.2-latest-Linux.x86_64.sh

    

    약관이 나오는데, 키보드의 PageDown 키를 누른다.

        Do you accept the license? 가 나오면 y를 넣고 엔터 키를 누른다. (다들 동의하시죠?)

    

    Do you want to include the subdirectory CUBRID-10.2-latest-Linux.x86_64.sh?

    Saying no will install in: "/cubrid" [Yn]:

        이거 물어보면 n 입력하고 엔터 키를 누른다.


    Since CUBRID broker and server versions should match, ... 라고 나오면 y 넣고 엔터 키를 누른다.

    

10. 환경설정 파일 복사


    다음 명령어를 실행해 파일을 복사한다. (sudo 권한 필요)

        

        cp /cubrid/.cubrid.sh /etc/profile.d/cubrid.sh

        

    /etc/profile.d 로 들어간다.

    

        cd /etc/profile.d/

        

    만들어진 파일 권한을 바꾼다. sudo 권한 필요

    

        sudo chmod 755 cubrid.sh



    추가사항 (2025.04.23)

    Rocky Linux 9.5 에서는 LD_LIBRARY_PATH 변수명이 무시된다.

    (바이너리에 setuid, setgid 등이 설정된 경우 리눅스의 로더는 LD_LIBRARY_PATH 환경 변수 설정을 무시해 버린다고 한다.)

    대신에 어떻게 해야 하느냐...


    먼저 /etc/ld.so.conf.d 로 들어간다.


        cd /etc/ld.so.conf.d


    vi로 cubrid.conf 파일을 만든다. (sudo 권한 필요)


        vi cubrid.conf


    내용은 다음 한줄만 넣으면 된다. 넣고 저장한다.


        /cubrid/lib

        

    이 변경사항을 적용하기 위해 다음 명령어를 입력한다. (sudo 권한 필요)


        ldconfig


11. 방화벽 세팅


    다음 명령어를 실행한다. (sudo 필요)

    

        firewall-cmd --permanent --zone=public --add-port=8001/tcp

        firewall-cmd --permanent --zone=public --add-port=30000/tcp

        firewall-cmd --reload


12. SELinux 비활성화


      https://justdaily.tistory.com/9   참고


13. OS를 재기동한다.


14. 큐브리드를 실행해보고 종료한다.

    cubrid 계정으로 로그인

    /cubrid/bin 디렉토리로 간다.

    

        cd /cubrid/bin

        

    큐브리드를 실행한다. (sudo 없이)

    

        cubrid service start

        

    콘솔에 ++ cubrid manager server start: success

    나오면 대충 성공이다.

    이제 종료한다.

    

        cubrid service stop



15. systemd 에 큐브리드 등록


    cubrid 계정으로 로그인

    /etc/systemd/system 경로로 이동

    

        cd /etc/systemd/system

        

    vi cubrid.service 파일 만들기 (sudo 권한 필요)

    

        vi cubrid.service

        

    내용은 다음과 같다. (systemd_cubrid.service_sample.txt 파일을 참고해도 된다.)

    

        # Cubrid Service

        

        [Unit]

        Description=Cubrid Database

        After=network-online.target

        

        [Service]

        Type=simple

        User=cubrid

        EnvironmentFile=/etc/profile.d/cubrid.sh

        WorkingDirectory=/cubrid

        ExecStart=/cubrid/bin/cubrid service start

        ExecStop=/cubrid/bin/cubrid service stop

        

        [Install]

        WantedBy=multi-user.target

    

    파일 권한 수정 (sudo 필요)

    

        chmod 755 cubrid.service

        

    서비스로 등록 (sudo 필요)

    

        systemctl enable cubrid




Sketchbook5, 스케치북5

Sketchbook5, 스케치북5