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 Proxy Server 経由でプライベートの RHN チャンネルに割り当てられたカスタムのパッケージを提供することができます。 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 サーバーにはアップロードされているけれどローカルのディレクトリにはないパッケージになります。 このオプションを使用する場合は組織の管理者になる必要があります。 アプリケーションにより 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
のオプション」 を参照してください。
RHN Package Manager (
rhn_package_manager
) の全コマンドラインオプションの要約については、 表6.1「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 | 呼び出しごとに処理するヘッダー数です — デフォルトは 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
) でも説明されています。