TT Lab
はじめる
学ぶ 学習パス コース

RHEL系の管理

rpmの照会とパッケージング

TT Labで続きを見る

目標

rpmで照会・検証し、specファイルで自分でパッケージをビルドしてインストールします。

なぜ重要なのか

rpm -Vは、インストール時点のハッシュと現在のファイルを比較して、何が変わったかを教えてくれる監査ツールです。設定ファイルが変わっているのは正常ですが、バイナリが変わっていたら調査する必要があります。そして、パッケージを自分で作ってみると、その中に何があるのかがはっきりわかります。%filesに書かれていないファイルがあるとビルドが失敗するというrpmbuildの厳格さが、パッケージの内容を正確に保ってくれます。

ステップ

  1. /root/rpmlabディレクトリを作成し、インストールされているパッケージの数を、数字1行で/root/rpmlab/count.txtに書いてください。
  2. coreutils-commonパッケージのドキュメントファイルの一覧を/root/rpmlab/docs.txtに保存してください。
  3. /usr/bin/lsを所有するパッケージ名だけを、1行で/root/rpmlab/owner.txtに書いてください。
  4. インストールされているパッケージのうち、設定ファイルを1つ選んで内容を1行追記したあと、検証を実行し、改ざんが表示された行を/root/rpmlab/verify.txtに保存してください。(/etc/nanorcや/etc/DIR_COLORSのように、安全なファイルを選んでください。)
  5. インストールされている任意のパッケージのインストールスクリプトを照会して、/root/rpmlab/scripts.txtに保存してください。スクリプトがないパッケージなら、その事実が出力されます。
  6. ~/rpmbuildのビルドツリーを作成し、/opt/fixtures/rpmbuild/labhub-tool-1.0をlabhub-tool-1.0.tar.gzにまとめてSOURCES/に、/opt/fixtures/rpmbuild/labhub-tool.specをSPECS/に置いて、ビルドしてください。~/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 명령 실행 결과 첫 줄>(プレースホルダーは順に、インストールされたバージョン-リリース、labhub-toolコマンドの実行結果の1行目です)

参考

インストール一覧と詳細情報

/root/rpmlabディレクトリを作成し、インストールされているパッケージの数を、数字1行で/root/rpmlab/count.txtに書いてください。

rpm -qaは1行に1つずつ出力されます。数を数えるだけです。

ファイル・設定・ドキュメントの区別

coreutils-commonパッケージのドキュメントファイルの一覧を/root/rpmlab/docs.txtに保存してください。

-ql、-qc、-qdの3つのオプションが、それぞれ別の一覧を出力します。

ファイルの所有者を探す

/usr/bin/lsを所有するパッケージ名だけを、1行で/root/rpmlab/owner.txtに書いてください。

-qfはパスを受け取ってパッケージを教えてくれます。名前だけが必要なら、切り出してください。

改ざんの検出

インストールされているパッケージのうち、設定ファイルを1つ選んで内容を1行追記したあと、検証を実行し、改ざんが表示された行を/root/rpmlab/verify.txtに保存してください。(/etc/nanorcや/etc/DIR_COLORSのように、安全なファイルを選んでください。)

設定ファイルを変更してから検証すると、特定の文字が表示されます。その行をそのまま保存してください。

インストールスクリプトの確認

インストールされている任意のパッケージのインストールスクリプトを照会して、/root/rpmlab/scripts.txtに保存してください。スクリプトがないパッケージなら、その事実が出力されます。

パッケージがインストールの前後に何を実行するかを見られる、照会オプションがあります。

rpmのビルド

~/rpmbuildのビルドツリーを作成し、/opt/fixtures/rpmbuild/labhub-tool-1.0をlabhub-tool-1.0.tar.gzにまとめてSOURCES/に、/opt/fixtures/rpmbuild/labhub-tool.specをSPECS/に置いて、ビルドしてください。~/rpmbuild/RPMS/noarch/の下に.rpmができている必要があります。

ビルドツリーを作り、ソースをtarにまとめてSOURCESに置けばよいです。specはフィクスチャにあります。

作成したパッケージを調べる

作成した.rpmをインストールしないまま照会して、情報とファイル一覧をそれぞれ/root/rpmlab/pkg-info.txt、/root/rpmlab/pkg-files.txtに保存してください。

インストールされていないファイルを照会するには、オプションがもう1つ必要です。

総合レポート

そのパッケージをインストールして、/root/rpmlab/report.txtを次の4行で作成してください。 NAME=labhub-tool / VERSION=<설치된 버전-릴리스> / ARCH=noarch / RUN=<labhub-tool 명령 실행 결과 첫 줄>(プレースホルダーは順に、インストールされたバージョン-リリース、labhub-toolコマンドの実行結果の1行目です)

ビルドしてインストールしたパッケージの情報を集めてください。値は実際の照会結果である必要があります。