Files
interactive/fhs/README.8.md
T

1.9 KiB

FHS Rocky Linux 8 빌드

Rocky Linux 8 컨테이너에서 저장소를 직접 마운트하고 FHS를 빌드한다.

실행 준비와 컨테이너

cd "$(git rev-parse --show-toplevel)"
RUN_ID="$(date +%Y%m%d%H%M%S)-$$"
FHS_CONTAINER="fhs-rocky8-${RUN_ID}"

podman pull docker.io/rockylinux/rockylinux:8
podman run -d \
  --name "$FHS_CONTAINER" \
  --volume "$PWD:/workspace:Z" \
  --workdir /workspace/fhs \
  docker.io/rockylinux/rockylinux:8 sleep infinity

소스는 복사하지 않고 -v로 현재 저장소를 /workspace에 마운트한다.

의존성과 고정 경로 준비

podman exec "$FHS_CONTAINER" bash -lc '
  dnf install -y \
    findutils gcc gcc-c++ make pkgconf-pkg-config bc \
    boost-devel openssl-devel sqlite-devel openldap-devel \
    libpq-devel apr-devel apr-util-devel
'

podman exec "$FHS_CONTAINER" bash -lc '
  set -e
  mkdir -p /user/db/pgsql/lib /user/service/httpd/lib
  ln -sfn /usr/include /user/db/pgsql/include
  ln -sfn /usr/lib64/libpq.so /user/db/pgsql/lib/libpq.a
  ln -sfn /usr/include/apr-1 /user/service/httpd/include
  ln -sfn /usr/lib64/libapr-1.so /user/service/httpd/lib/libapr-1.a
'

FHS 빌드

podman exec -w /workspace/fhs "$FHS_CONTAINER" bash -lc '
  set +e
  for component in arcmond2 cls csagentd fimngd ftsd sh-opendav; do
    make clean -C "$component" >/dev/null 2>&1
    echo "===== BUILD ${component} ====="
    make all -C "$component"
    echo "===== STATUS ${component} $? ====="
  done
'

실제 결과

실행 당시 Rocky Linux 8.10, GCC 8.5.0 환경에서 확인했다.

구성요소 결과
arcmond2 2
cls 2
csagentd 2
fimngd 0
ftsd 0
sh-opendav 2

arcmond2makedev, clssetproctitle, csagentduint64_t 및 시스템 정보 필드에서 실패했다. sh-opendavall target이 없다.

file fhs/ftsd/src/ftsd
file fhs/ftsd/interface/sample/ftsd_test