지금도 열심히 해법 찾는 중이고
일단 결론은, 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