1.9 KiB
1.9 KiB
FHS Rocky Linux 9 빌드
Rocky Linux 9 컨테이너에서 저장소를 직접 마운트하고 FHS를 빌드한다.
실행 준비와 컨테이너
cd "$(git rev-parse --show-toplevel)"
RUN_ID="$(date +%Y%m%d%H%M%S)-$$"
FHS_CONTAINER="fhs-rocky9-${RUN_ID}"
podman pull docker.io/rockylinux/rockylinux:9
podman run -d \
--name "$FHS_CONTAINER" \
--volume "$PWD:/workspace:Z" \
--workdir /workspace/fhs \
docker.io/rockylinux/rockylinux:9 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 9.8, GCC 11.5.0 환경에서 확인했다.
| 구성요소 | 결과 |
|---|---|
arcmond2 |
2 |
cls |
2 |
csagentd |
2 |
fimngd |
0 |
ftsd |
0 |
sh-opendav |
2 |
arcmond2는 makedev, cls는 setproctitle, csagentd는
uint64_t 및 시스템 정보 필드에서 실패했다.
sh-opendav는 all target이 없다.
file fhs/ftsd/src/ftsd
file fhs/ftsd/interface/sample/ftsd_test