조회 수 1074 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

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

일단 결론은, 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



  • ?
    조원제 2025.04.22 13:03
    안녕하세요. 큐브리드를 이용해 주셔서 감사합니다.

    ExecStart=/cubrid/bin/cubrid 경로에 대해 권한이 부여된 상태이지만 Permission denied 오류가 발생하는 경우, SELinux 설정이 원인일 수 있습니다.

    sudo setenforce 0 명령어로 SELinux를 일시적으로 비활성화 후 sudo systemctl restart cubrid 명령어로 서비스를 재시작해 보시기 바랍니다.

    명렁어 실행 후에도 동일한 에러가 발생한다면, journalctl -xeu cubrid.service의 로그를 남겨주시면 감사하겠습니다.
  • ?
    HJOW 2025.04.22 15:10

    다소 문제가 생겨서, VM 새로 만들어서 처음부터 다시 진행했고, sudo setenforce 0 및 서비스 재시작했습니다.

    journalctl 명령어 실행결과는 본문 내용 수정해서 하단에 붙이고 파일로도 첨부했습니다.


    자세히 보니 sudo setenforce 0 이후 오류 메시지가 바뀌어 있습니다.


     4월 22 15:14:21 linux.local systemd[1]: Started Cubrid Database.

     4월 22 15:14:21 linux.local cubrid[2502]: /cubrid/bin/cubrid: error while loading shared libraries: libcubridsa.so.10.2: cannot open shared object file: No such file or directo>

     4월 22 15:14:21 linux.local systemd[1]: cubrid.service: Main process exited, code=exited, status=127/n/a

     4월 22 15:14:21 linux.local systemd[1]: cubrid.service: Failed with result 'exit-code'.



    이 오류메시지로 구글링을 해보고
    env 명령어
    lib폴더 내용물
    .cubrid.sh 파일 내용
    도 파일로 첨부했습니다.

    ---------------------------------------
    추가

    아예 selinux 꺼버리고 (disabled)
    OS 재기동 후 journal 다시 돌렸더니



     4월 22 15:24:18 localhost.localdomain systemd[1]: cubrid.service: Ignoring invalid environment assignment 'if [ "x${LD_LIBRARY_PATH}x"=xx ]; then': /etc/profile.d/cubrid.sh
     4월 22 15:24:18 linux.local systemd[1]: Started Cubrid Database.
    ░░ Subject: A start job for unit cubrid.service has finished successfully
    ░░ Defined-By: systemd
    ░░ Support: https://wiki.rockylinux.org/rocky/support
    ░░
    ░░ A start job for unit cubrid.service has finished successfully.
    ░░
    ░░ The job identifier is 290.
     4월 22 15:24:18 linux.local cubrid[1185]: /cubrid/bin/cubrid: error while loading shared libraries: libcubridsa.so.10.2: cannot open shared object file: No such file or directo>
     4월 22 15:24:18 linux.local systemd[1]: cubrid.service: Main process exited, code=exited, status=127/n/a
    ░░ Subject: Unit process exited
    ░░ Defined-By: systemd
    ░░ Support: https://wiki.rockylinux.org/rocky/support
    ░░
    ░░ An ExecStart= process belonging to unit cubrid.service has exited.
    ░░
    ░░ The process' exit code is 'exited' and its exit status is 127.
     4월 22 15:24:18 linux.local systemd[1]: cubrid.service: Failed with result 'exit-code'.
    ░░ Subject: Unit failed
    ░░ Defined-By: systemd
    ░░ Support: https://wiki.rockylinux.org/rocky/support
    ░░
    ░░ The unit cubrid.service has entered the 'failed' state with result 'exit-code'.


    이거 환경변수 파일은 찾았지만 이 파일 내용에 문제가 있는 것 같습니다.
  • ?
    kisoo 2025.04.22 15:53 Files첨부 (1)

    systems 설정하신거 보니 거의 하신듯 한데요.

    LD_LIBRARY_PATH의 설정에 문제가 있을 수도 있으니 첨부한 cubrid.sh을 대체헤서 테스트 부탁드립니다.

    /cubrid/cubrid/.cubrid.sh

    /etc/profile.d/cubrid.sh

  • ?
    HJOW 2025.04.23 09:18

    이거 방금 해봤는데요, 여전히 so파일을 못찾아서 LD_LIBRARY_PATH 찍어보니 /cubrid/lib: 라고 뒤에 콜론(:)이 붙어버리네요. 위험성은 있지만 콜론 뒷부분을 제거해서 (LD_LIBRARY_PATH=/cubrid/lib) 다시 시도해보는 중입니다.


    다시해본 결과 똑같습니다. libcubridsa.so.10.2 cannot open shared object file: No such file o>

    몇 가지 더 해봤는데요, 


    임의의 폴더를 만들어서 (/etc/ldlibpath)

    $CUBRID/lib:/etc/ldlibpath:$LD_LIBRARY_PATH

    로도 바꿔보고 (재부팅 후 status 찍어보니 똑같음)

    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUBRID/lib:/etc/ldlibpath

    로도 바꿔보고
    오류메시지가 똑같습니다.

    여러가지 시도해 보는 중...


  • ?
    HJOW 2025.04.23 10:08

    이거 잡았습니다. 원인도 찾았습니다.
    세상에

    바이너리에 setuid, setgid 등이 설정된 경우 리눅스의 로더는 LD_LIBRARY_PATH 환경 변수 설정을 무시해 버린다고 한다.
    라는 카더라가 있는데 이게 진짜인 듯 합니다.

    이 LD_LIBRARY_PATH 를 대신해서, ldconfig 기능 (/etc/ld.so.conf.d) 으로 경로를 잡아주니까 이 문제가 해결됐습니다.
    위 본문 10번 항목을 수정했습니다. 저대로 하고 재부팅하니까

    OS 부팅 직후 서비스 상태보면 여전히 fail 뜨기는 하는데
    cubrid_master start: success
    cubrid server start: fail
    cubrid broker start: success
    cubrid_manager server start: fail
    이렇게 뜨면서 fail 뜨고

    sudo systemctl restart cubrid
    큐브리드 서비스만 재기동하니까 서비스가 정상 기동됩니다.
    이건 다른문제 같아서 또 조사 중

  • ?
    제 경험을 공유하겠습니다. 참고하세요.
    rocky 9.5, CUBRID 10.2로 테스트 했습니다.

    =====================
    1. SELIX는 아예 disable 합니다.
    $ vi /etc/sysconfig/selinux
    ...
    #
    SELINUX=disabled
    #

    reboot 한번 해주고

    2. 첨부한 cubrid.sh을 /cubrid/.cubrid.sh로 copy 합니다.
       $ cp cubrid.sh /cubrid/.cubrid.sh
       $ vi .bash_profile.sh (file의 맨 마지막에 아래 line을 추가합니다.)
        if [ -f $HOME/.cubrid.sh ];then
          . $HOME/.cubrid.sh
        fi
       $ . /cubrid/.cubrid.sh
        (cubrid 10 version은 ncurses version 5로 build 되어있습니다.
         위의 script를 한번 실행하면 /cubrid/lib에 3개의 symbolic link
         /libtinfo.so.5, libncurses.so.5, libform.so.5 가 생긴 걸 확인할 수 있을 것입니다)

       $ cubrid_rel    # 이 명령을 실행하여 version 정보를 출력하면 library path가 제대로 된 것입니다.

    3. 첨부한 cubrid.service을 system directory로 복사합니다.
      $ sudo cp cubrid.service /etc/systemd/system/cubrid.service
      $ sudo systemctl daemon-reload
      $ sudo systemctl restart cubrid
      $ reboot
      ...
      재부트 LOGIN후에 cubrid process 확인합니다.
      $ ps -ef | grep cub_

    4. ldconfig를 수정해도 되지만, 이 수정은 시스템 전체에 영향을 미치는 것이라
       cubrid.service에 있는 것처럼, 아래와 같이 해도 동작하더라구요
       ...
       Environment=LD_LIBRARY_PATH=/cubrid/lib
       ...

  • ?
    HJOW 2025.04.25 09:25
    이거 됩니다 !
    2번에 .bash_profile 파일명 뒤에는 .sh가 붙지 않습니다. 그것만 잘 고려해서 그대로 따라하니 재부팅해도 서비스가 실행되고 모두 success 뜹니다.
    감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
267 cubrid 정기교육 문의 1 환쓰 2025.05.19 57
» Rocky Linux 9.5 에서 Cubrid 10.2 설치해본 후기 7 file HJOW 2025.04.18 1074
265 database별 브로커 할당 가능 여부 3 lsh 2025.03.18 1043
264 php에서 odbc 드라이버 사용 후 오류 관련 문의 프리맨 2024.12.19 1244
263 큐브리드 오류 메시지 문의 5 박현우 2024.01.30 2229
262 큐브리드매니저 관련 문의 2 12345 2024.01.05 2166
261 mssql server 2008에서 cuibrid 서버 연결하고 프로시져 만들어서 돌리는 방법 좀.... Xstar 2023.09.08 2441
260 Migration Toolkit 실행이 안되고 있습니다 3 kipo0821 2023.06.01 2008
259 [5월 정기교육] 2일차 개발자교육 김아리 2023.05.25 3187
258 우어 벌써 17년이나 되었네요 1 후들짝 2023.05.07 22082
257 정기교육 일정 및 신청 문의 드립니다. 1 gcpark 2023.04.25 1986
256 CLASS_TYPE 에 관련해서.. 1 학아 2023.04.07 2092
255 큐브리드 매니저 윈도우 다운어디서 받아요? 1 박수진 2023.01.12 2186
254 하위버전 다운로드 항몫 1 정정미 2022.11.02 2277
253 안녕하세요 1 이현수 2022.11.02 2305
252 홈페이지 Cubrid 에서 글씨체 관련이요 1 hane 2022.05.19 2908
251 큐브리드 매니저 윈도우버젼은 없네요? 어디서 다운받나요? 1 겸둥이k 2021.08.03 2858
250 큐브리드 엔진 리눅스용 32비트는 1 김둥둥 2021.07.29 2006
249 (+)는 무슨의미인가요?? 1 이지은 2021.07.23 9444
248 콘솔 접속 1 yonggi 2021.05.26 2696
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5