diff --git a/rcts/README.md b/rcts/README.md new file mode 100644 index 0000000..48ea1d2 --- /dev/null +++ b/rcts/README.md @@ -0,0 +1,93 @@ +# RCTS CentOS 6 Build + +## 1. 컨테이너 실행 + +```bash +podman run -d --name rcts-centos6 centos:centos6 sleep infinity +podman exec -it rcts-centos6 bash +``` + +## 2. 저장소 설정 + +```bash +cp -p /etc/yum.repos.d/CentOS-Base.repo \ + /etc/yum.repos.d/CentOS-Base.repo.before-vault + +sed -i \ + -e 's|^mirrorlist=|#mirrorlist=|' \ + -e 's|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=http://vault.centos.org/6.10|' \ + /etc/yum.repos.d/CentOS-Base.repo +``` + +## 3. 의존성 설치 + +```bash +yum install -y gcc gcc-c++ make pkgconfig +yum install -y boost-devel openssl-devel sqlite-devel openldap-devel +``` + +```bash +yum install -y \ + http://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm + +sed -i \ + -e 's|^mirrorlist=|#mirrorlist=|' \ + -e 's|^#baseurl=http://download.fedoraproject.org/pub/epel/6/\$basearch|baseurl=http://archives.fedoraproject.org/pub/archive/epel/6/\$basearch|' \ + /etc/yum.repos.d/epel.repo + +yum install -y libxml++-devel +``` + +```bash +PG93_BASE=http://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-6-x86_64 + +yum install -y \ + ${PG93_BASE}/postgresql93-9.3.25-1PGDG.rhel6.x86_64.rpm \ + ${PG93_BASE}/postgresql93-libs-9.3.25-1PGDG.rhel6.x86_64.rpm \ + ${PG93_BASE}/postgresql93-devel-9.3.25-1PGDG.rhel6.x86_64.rpm +``` + +```bash +mkdir -p /user/db +ln -s /usr/pgsql-9.3 /user/db/pgsql +``` + +## 4. 소스 복사 + +호스트에서 실행한다. + +```bash +podman exec rcts-centos6 mkdir -p /workspace +git archive --format=tar HEAD rcts \ + | podman exec -i rcts-centos6 tar -xf - -C /workspace +``` + +## 5. 링크 옵션 보정 + +컨테이너 안에서 실행한다. + +```bash +for f in /workspace/rcts/*/src/Makefile /workspace/rcts/rc_du/Makefile; do + sed -i -r \ + '/^[[:space:]]*LIBS[[:space:]]*=/ s|$| -lssl -lcrypto -lgssapi_krb5 -lcrypt -lldap_r -lpthread|' \ + "$f" +done +``` + +## 6. 빌드 + +```bash +for component in rc_accessd rc_apid rc_balanced rc_cmove rc_du \ + rc_gcmd rc_mngd rc_mond rc_rmcd rc_sscd rc_syncd; do + make -C /workspace/rcts/${component} all +done +``` + +결과: 11개 컴포넌트 빌드 성공. + +실행 파일 위치: + +```text +/workspace/rcts/rc_du/rc_du +/workspace/rcts//src/ +```