LabHub
배우기 러닝패스 코스

RHEL-Family Administration

Querying and Packaging With 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 명령 실행 결과 첫 줄>

참고

설치 목록과 상세 정보

/root/rpmlab 디렉터리를 만들고, 설치된 패키지 개수를 숫자 한 줄로 /root/rpmlab/count.txt 에 적으세요.

rpm -qa 는 한 줄에 하나씩 나옵니다. 개수만 세면 됩니다.

파일·설정·문서 구분

coreutils-common 패키지의 문서 파일 목록/root/rpmlab/docs.txt 로 저장하세요.

-ql, -qc, -qd 세 옵션이 각각 다른 목록을 냅니다.

파일의 주인 찾기

/usr/bin/ls 를 소유한 패키지 이름만 한 줄로 /root/rpmlab/owner.txt 에 적으세요.

-qf 는 경로를 받아 패키지를 알려 줍니다. 이름만 필요하면 잘라내세요.

변조 탐지

설치된 패키지 중 설정 파일을 하나 골라 내용을 한 줄 덧붙인 뒤 검증을 실행하고, 변조가 표시된 줄을 /root/rpmlab/verify.txt 로 저장하세요. (/etc/nanorc/etc/DIR_COLORS 처럼 안전한 파일을 고르세요.)

설정 파일을 고친 뒤 검증하면 특정 문자가 나타납니다. 그 줄을 그대로 저장하세요.

설치 스크립트 확인

아무 설치된 패키지의 설치 스크립트를 조회해 /root/rpmlab/scripts.txt 로 저장하세요. 스크립트가 없는 패키지면 그 사실이 출력됩니다.

패키지가 설치 전후에 무엇을 실행하는지 볼 수 있는 질의 옵션이 있습니다.

rpm 빌드

~/rpmbuild 빌드 트리를 만들고, /opt/fixtures/rpmbuild/labhub-tool-1.0labhub-tool-1.0.tar.gz 로 묶어 SOURCES/ 에, /opt/fixtures/rpmbuild/labhub-tool.specSPECS/ 에 두고 빌드하세요. ~/rpmbuild/RPMS/noarch/ 아래에 .rpm 이 생겨야 합니다.

빌드 트리를 만들고 소스를 tar 로 묶어 SOURCES 에 두면 됩니다. spec 은 픽스처에 있습니다.

만든 패키지 뜯어보기

만든 .rpm설치하지 않은 채로 조회해 정보와 파일 목록을 각각 /root/rpmlab/pkg-info.txt, /root/rpmlab/pkg-files.txt 로 저장하세요.

설치되지 않은 파일을 조회하려면 옵션 하나가 더 필요합니다.

종합 보고서

그 패키지를 설치하고 /root/rpmlab/report.txt 를 다음 4줄로 만드세요. NAME=labhub-tool / VERSION=<설치된 버전-릴리스> / ARCH=noarch / RUN=<labhub-tool 명령 실행 결과 첫 줄>

빌드하고 설치한 패키지의 정보를 모으세요. 값은 실제 조회 결과여야 합니다.