Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第6章 カスタムパッケージをアップロードして保守作業を行う

プライベートチャンネルへのパッケージのアップロードには 2 通りの仕組みがあり、 使用している Red Hat Network サービスによって異なります。
RHN Proxy Server のご利用のお客様は RHN Package Manager アプリケーションを使用して頂くことになります。 パッケージヘッダー情報を中央の Red Hat Network サーバーに送り、 RHN Package Manager を起動した Proxy のローカルリポジトリにそのパッケージ自体を格納します。
RHN Satellite Server をご利用のお客様は RHN Push アプリケーションを使用して頂くことになります。 パッケージのヘッダー情報をローカルの RHN Satellite Server に送り、 RHN Push を起動した Satellite のローカルレポジトリにそのパッケージを格納します。
本章ではこれら両方のツールについて詳しく見ていくことにします。

警告

RHN Proxy Server と RHN Satellite Server の両方を使用している場合は RHN Push のみを使用するようにしてください。 Proxyと Satellite の組み合わせの場合にはカスタムのパッケージとチャンネルのアップロードは Satellite に対してのみ行います。 Proxy サーバーはここからパッケージを取得してクライアントシステム群に配信することになります。

6.1. RHN Proxy Server にパッケージをアップロードする

RHN Package Manager を使用してプライベートな RHN チャンネルに関連付けしているカスタムのパッケージを RHN Proxy Server 全体に提供します。 RHN Proxy Server から提供するパッケージが正規の Red Hat Enterprise Linux パッケージのみの場合は RHN Package Manager をインストールする必要はありません。
RHN Package Manager を使用するには、 rhns-proxy-package-manager RPM パッケージとその依存パッケージをインストールします。 このパッケージは登録している RHN Proxy Server のシステム群から入手することができ、 up2date rhns-proxy-package-manager を実行するとインストールされます。

注記

RHN サーバーにアップロードされるのはパッケージのヘッダー情報のみです。 RHN にクライアントシステム群のパッケージ依存関係を解決させるためにこのヘッダー情報が必要となります。 実際のパッケージファイルは (*.rpm) RHN Proxy Server に収納されます。 このため、 カスタムのパッケージは RHN ウェブサイトに表示されていてもダウンロードすることはできません。 カスタムのパッケージは up2date を使ってクライアントのシステムから取り込む必要があります。

6.1.1. RHN Package Manager を設定して使用する

RHN Package Manager を使ってパッケージを RHN にアップロードする前に、 まず そのパッケージを手作業で Proxy サーバー自体にコピーする必要があります。 例えば、 開発ホストから scp を使用します。
scp foo.rpm root@rhnproxy.example.com:/tmp
RHN Package Manager を使用して Red Hat Network にパッケージをアップロードする場合は以前にサーバーにコピーしたファイルをポイントします。

注記

システムでパッケージを取得するにはチャンネルが必要になるため、 Red Hat Network にカスタムのパッケージをアップロードする前にそのパッケージを受け取るプライベートチャンネルを少なくとも 1 つ作成します。
次のコマンドでパッケージヘッダーを RHN サーバーにアップロードし、 そのパッケージを RHN Proxy Server リポジトリにコピーします。
rhn_package_manager -c label_of_private_channelpkg-list
label_of_private_channel はこれらのパッケージ受信用に作成されたカスタムチャンネルです。 作成時に指定した正確なチャンネルラベルを必ず使用してください。チャンネルをひとつまたは複数指定している場合は (-c または --channel を使用)、アップロードしたパッケージのヘッダーは指定した全チャンネルにリンクされます。チャンネルを指定しないと、パッケージは パッケージの管理 ページの チャンネルがありません のセクションに置かれます。パッケージを再割り当てする方法については 「パッケージをソフトウェアチャンネルに割り当てる」 を参照してください。
pkg-list 参照はアップロードするパッケージの一覧を表示します。 これらのパッケージは既に Proxy ホストに物理的にコピーされていなければなりません。 別の方法として、 -d オプションを使用してチャンネルに追加するパッケージを含んだローカルのディレクトリを指定することもできます。 RHN Package Manager は標準入力からパッケージの一覧を読み取ることもできます (--stdin を使用)。
Red Hat Network サーバー のURL、 HTTP プロキシのユーザー名とパスワード (HTTP プロキシに認証を必要とする場合)、 パッケージが存在する上部ディレクトリなど、 その他のオプションは設定ファイルに指定してされています。 この特殊な設定は 編集しないでください。 またこの設定は /etc/rhn/default/rhn_proxy_package_manager.conf に格納されています。 このデフォルト設定ファイル内の選択は、 メインの設定ファイル /etc/rhn/rhn.conf を使って設定したり、 RHN Package Manager にコマンドラインオプションを渡したりすることで上書きできます。
このファイルに設定されていないパラメータについては、 現在ログインしているユーザーのホームディレクトリにある .rhn_package_manager から読み込まれます。 また、ここにもない場合は最終的には /etc/rhn/rhn_package_manager.conf から読み込まれます。 これらのファイルが他の人から読み取られないよう必ず適切なパーミッションを持たせるようにしてください。
パッケージをアップロードしたらローカルディレクトリがチャンネルの RHN サーバーのイメージと同期しているかどうか確認します。
rhn_package_manager -s -c name_of_private_channel
この -s オプションは不足している全パッケージを一覧表示します。 これらは RHN サーバーにはアップロードされているがローカルのディレクトリにないパッケージです。 このオプションを使用する場合は Organization Administrator になる必要があります。 アプリケーションにより RHN のユーザー名とパスワードの入力が求められます。
--copyonly オプションは引数に記載されているファイルを Satellite にはアップロードせずに指定のチャンネルにコピーします。 RHN Proxy Server 上のチャンネルにパッケージが1つ不足しているけれどこのチャンネルに全パッケージ群の再インポートはしたくない場合に便利です。
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
パッケージ一覧は RHN サーバーに保存してあるため RHN Package Manager を使用してもチャンネル内のパッケージ一覧を検索することができます。
rhn_package_manager -l -c name_of_private_channel
-l オプションを使用すると指定したチャンネル内にある各パッケージのパッケージ名、 バージョン番号、 リリース番号、 アーキテクチャ、 チャンネル名を表示します。 他のオプションについては 表6.1「rhn_package_manager オプション」 を参照してください。
表6.1「rhn_package_manager オプション」RHN Package Manager (rhn_package_manager) 用の全コマンドラインオプションの要約です。

表6.1 rhn_package_manager オプション

オプション 説明
-v, --verbose 標準の出力メッセージの詳細レベルが冗長になります。
-d, --dir DIRECTORY_NAME このディレクトリからのパッケージを処理します。
-c, --channel CHANNEL_NAME パッケージを検索するチャンネルを指定します。 -c を複数回使用すると複数のチャンネルを指定することができます (例、 -c channel_one -c channel_two)。
-n, --count NUMBER 指定したヘッダー数が 1 呼出しごと処理されます — デフォルトは 32 です。
-l, --list 指定したチャンネルのパッケージを一覧表示します。
-s, --sync ローカルのディレクトリがサーバーと同期しているかどうか確認します。
-p, --printconf 現在の設定を表示して終了します。
--newest サーバーにあるパッケージより新しいパッケージのみをプッシュします。 ソースパッケージはバージョン同士の比較が行われないという点で特殊となります。 その新しさは関連するバイナリパッケージに関係します。 このオプションを RHN Package Manager とソースパッケージで使用するとパッケージをアップロードしますが、関連バイナリパッケージがアップロードされるまで RHN Web インターフェースにソースパッケージは表示されません。 --source と比較して見てください。 --source --newest を一緒に使用すると単独ソースパッケージをより新しいパッケージで更新するため、 先に関連バイナリパッケージをアップロードしておく必要がありません。
--source 指示されたソースパッケージをアップロードします。 この場合、 ソースパッケージはプレーンで単独のパッケージとして扱われ、 別途に既存するバイナリパッケージと関連する特殊なソースパッケージとしては 扱われません。 例えば、 通常のソース制御管理の範囲外で開発者やテスターにアプリケーションソースを配布したい場合などに使用できます。
--stdin 標準出力からパッケージ名を読み込みます。
--nosig パッケージに署名がない場合も失敗しません。
--no-ssl SSL をオフにします (推奨できません)。
--stdin 標準出力からパッケージ名を読み込みます。
--username USERNAME RHN のユーザー名を指定します。 指定しないと有効なチャンネル管理者のユーザー名の入力が求められます。
--password PASSWORD RHN パスワードを指定します。 指定しないと有効なチャンネル管理者のパスワードの入力が求められます。
--dontcopy アップロード後の手順でパッケージをパッケージツリー内の最終的な格納場所ににコピーしません。
--copyonly パッケージのコピーのみを行い再インポートは行いません。
--test プッシュするパッケージの一覧を出力するだけです。
-?, --help オプションの一覧とヘルプの画面を表示します。
--usage 使用可能なオプションの簡単な説明を表示します。
--copyonly パッケージのコピーのみを行います。

注記

これらのコマンドラインオプションは rhn_package_manager の man ページ (man rhn_package_manager) でも説明されています。