LabHub

RHEL 계열 관리 · rpm 저수준 · 실습

rpm 질의와 패키징

LabHub 에서 이어서 보기

목표

rpm 으로 질의하고 검증하고, spec 파일로 직접 패키지를 빌드해 설치합니다.

왜 중요한가

rpm -V 는 설치 시점의 해시와 현재 파일을 비교해 무엇이 바뀌었는지 알려 주는 감사 도구입니다. 설정 파일이 바뀐 것은 정상이지만 바이너리가 바뀌었다면 조사해야 합니다. 그리고 패키지를 직접 만들어 보면 그 안에 무엇이 있는지 확실히 알게 됩니다 — %files 에 적히지 않은 파일이 있으면 빌드가 실패하는 rpmbuild 의 엄격함이 패키지 내용을 정확하게 유지해 줍니다.

단계

1. /root/rpmlab 디렉터리를 만들고, 설치된 패키지 개수를 숫자 한 줄로 /root/rpmlab/count.txt 에 적으세요.
2. coreutils-common 패키지의 문서 파일 목록/root/rpmlab/docs.txt 로 저장하세요.
3. /usr/bin/ls 를 소유한 패키지 이름만 한 줄로 /root/rpmlab/owner.txt 에 적으세요.
4. 설치된 패키지 중 설정 파일을 하나 골라 내용을 한 줄 덧붙인 뒤 검증을 실행하고, 변조가 표시된 줄을 /root/rpmlab/verify.txt 로 저장하세요. (/etc/nanorc/etc/DIR_COLORS 처럼 안전한 파일을 고르세요.)
5. 아무 설치된 패키지의 설치 스크립트를 조회해 /root/rpmlab/scripts.txt 로 저장하세요. 스크립트가 없는 패키지면 그 사실이 출력됩니다.
6. ~/rpmbuild 빌드 트리를 만들고, /opt/fixtures/rpmbuild/labhub-tool-1.0labhub-tool-1.0.tar.gz 로 묶어 SOURCES/ 에, /opt/fixtures/rpmbuild/labhub-tool.specSPECS/ 에 두고 빌드하세요. ~/rpmbuild/RPMS/noarch/ 아래에 .rpm 이 생겨야 합니다.
7. 만든 .rpm설치하지 않은 채로 조회해 정보와 파일 목록을 각각 /root/rpmlab/pkg-info.txt, /root/rpmlab/pkg-files.txt 로 저장하세요.
8. 그 패키지를 설치하고 /root/rpmlab/report.txt 를 다음 4줄로 만드세요.
NAME=labhub-tool / VERSION=<설치된 버전-릴리스> / ARCH=noarch / RUN=<labhub-tool 명령 실행 결과 첫 줄>

참고

단계 8개

  1. 설치 목록과 상세 정보
  2. 파일·설정·문서 구분
  3. 파일의 주인 찾기
  4. 변조 탐지
  5. 설치 스크립트 확인
  6. rpm 빌드
  7. 만든 패키지 뜯어보기
  8. 종합 보고서