ハンドブック:PPC64/Portage/ファイル
Portage におけるファイル
設定ディレクティブ
Portage にはデフォルト設定があり、それらは /usr/share/portage/config/make.globals に保管されています。すべての Portage の設定は変数を通じて処理されます。Portage がどのような変数を見ているか、またそれらがどのような意味を持つのかについては後ほど説明します。
多くの設定ディレクティブはアーキテクチャーによって異なるので、Portage はシステムプロファイルの一部であるデフォルト設定ファイルも持っています。このプロファイルは /etc/portage/make.profile シンボリックリンクによって指定されています; Portage の設定はプロファイルとそのすべての親プロファイルの make.defaults ファイルでセットされています。プロファイルと /etc/portage/make.profile ディレクトリーについては後ほど詳しく説明します。
設定変数を変更する際は /usr/share/portage/config/make.globals や make.defaults を書き換えないでください。代わりに、これらのファイルよりも優先される /etc/portage/make.conf を使用してください。詳細については /usr/share/portage/config/make.conf.example を読んでください。名前が示すとおり、これは単なるサンプルファイルです - Portage はこのファイルを読み込みません。
また Portage の設定変数を環境変数として定義することもできますが、これはお勧めしません。
profile 特有の情報
すでに /etc/portage/make.profile というディレクトリーが出てきました。さて、実際にはこれはディレクトリーではなくてプロファイルへのシンボリックリンクで、デフォルトでは /var/db/repos/gentoo/profiles/ の中の1つを指していますがお好きな場所にプロファイルを作成してそれを指定することもできます。このシンボリックリンクが指すプロファイルが、システムが従うプロファイルになります。
プロファイルは、そのプロファイルに該当するシステムに属するパッケージの一覧やそのプロファイルでは動かない(またはマスクされた)パッケージの一覧など、アーキテクチャー特有のPortage 用の情報を含んでいます。
ユーザーによる設定
Portage の動作をソフトウェアのインストールを考慮して変更する必要がある時には、/etc/portage/ 内の適切なファイルを変更する必要があります。/etc/portage/ 内のファイルを使うことを強くお勧めします、環境変数を通じて動作を上書きするのはできる限り避けてください!
/etc/portage/ の中では、ユーザーは以下のファイルを作成することができます:
- package.mask Portage が決してインストールしようとすべきでないパッケージの一覧。
- package.unmask Gentoo 開発者がユーザーにできる限り emerge しないよう勧めているにも関わらず Portage がインストールできるパッケージの一覧。
- package.accept_keywords パッケージがそのシステムやアーキテクチャにおいて適切だと(まだ)判断されていないにも関わらず Portage がインストールできるパッケージの一覧。
- package.use システム全体では使われていないが特定のパッケージでは使われる USE フラグの一覧。
これらはファイルである必要はありません; パッケージごとのファイルを含むディレクトリーにすることもできます。/etc/portage/ ディレクトリーについてのさらなる情報や作成できるファイルの完全な一覧が Portage の man ページにあります:
user $
man portage
Portage のファイルやディレクトリーの場所を変更する
これまでに言及した設定ファイルを他の場所に置くことはできません - Portage は常に正確にそれらの場所にあるそれらのファイルを見にいきます。しかしながら、Portage はこれ以外に多くの場所をさまざまな目的のために使っています: ビルドディレクトリー、ソースコードの保管場所、Gentoo リポジトリの場所、…
これらの目的についてはどれもよく知られたデフォルトの場所がありますが、それらは個人の好みに応じて /etc/portage/make.conf で変更することができます。この章の残りの部分では、Portage がどのような特別な目的の場所を使っているか、またそれらのファイルシステム上の配置を変更する方法について説明します。
ただし、この文書はリファレンスとして使われることを意図したものではありません。すべてを網羅している文書が必要な場合は Portage や make.conf の man ページを参照してください:
user $
man portage
user $
man make.conf
ファイルの保存
Gentoo ebuild リポジトリ
Gentoo ebuild リポジトリのデフォルトの場所は /var/db/repos/gentoo です。これは /usr/share/portage/config/repos.conf にあるデフォルトの repos.conf ファイルで定義されています。デフォルト値を変更するには、このファイルを /etc/portage/repos.conf/gentoo.conf にコピーしてから location 設定を変更してください。(この変数を書き換えて) Gentoo ebuild リポジトリをデフォルト以外の場所に保存する場合、/etc/portage/make.profile シンボリックリンクをそれに応じて変更することを忘れないでください。
/etc/portage/repos.conf/gentoo.conf の location 設定を変更した後には、location の変更が適用されない /etc/portage/make.confの以下の変数についても同様に書き換えることをお勧めします。これは Portage が変数を処理する方法に起因します: PKGDIR、DISTDIR、および RPMDIR。
ビルド済バイナリ
Portage はデフォルトではビルド済みバイナリを使用しませんが、それらを広範にサポートしています。Portage にビルド済みバイナリを使用するよう指示すると、Portage はバイナリパッケージを /var/cache/binpkgs から探します。この場所は PKGDIR 変数で定義されています。
ソースコード
アプリケーションのソースコードはデフォルトで /var/cache/distfiles に保管されます。この場所は DISTDIR 変数で定義されています。
Portage のデータベース
Portage はシステムの状態(どのパッケージがインストールされているか、どのファイルがどのパッケージに属しているか、…)を /var/db/pkg に保管しています。
システム状態ファイルを手動で置き換えないでください! Portage のシステムに関する情報が壊れる可能性があります。
Portage のキャッシュ
Portage のキャッシュ (変更時間、virtual、依存関係ツリーの情報、…を含む) は /var/cache/edb に保管されています。この場所は本当にキャッシュです: その時に Portage に関係するアプリケーションが実行されていない限り、ユーザーはこの場所のキャッシュを削除できます。
ソフトウェアをビルドするにあたり
Portage の一時ファイル
Portage の一時ファイルはデフォルトで /var/tmp/ に保管されています。これは PORTAGE_TMPDIR 変数で定義されています。
ビルド作業用ディレクトリ
Portage は各パッケージについて /var/tmp/portage/ 内に個別にビルドディレクトリーを作成しそこで emerge を行います。この場所は PORTAGE_TMPDIR 変数に portage/ を付け加えることで定義されます。
ライブファイルシステムの場所
デフォルトでは Portage はすべてのファイルを現在のファイルシステム (/) にインストールしますが、これは ROOT 環境変数を定義することで変更できます。これは新しいビルドイメージを作る際に有用です。
ログ記録機能
ebuild のログ記録
Portage は ebuild ごとのログファイルを作成することができますが、これは PORT_LOGDIR 変数に Portage から (Portage ユーザーを通じて) 書き込み可能な場所がセットされている場合のみ行われます。デフォルトではこの変数はセットされていません。PORT_LOGDIR がセットされていない場合には現在のログシステムではビルドログは一切作成されませんが、ユーザーは新しい elog サポートによるログを受け取るかもしれません。
PORT_LOGDIR が定義されておらず elog が使用されている場合、elog によって保存されるビルドログその他すべてのログが以下で説明するとおりに利用可能になります。
Portage は elog の使用を通じてログの記録に対するきめ細かい制御を提供します:
- PORTAGE_ELOG_CLASSES: どのような種類のメッセージを記録するか定義できるところです。info、warn、error、log、および qa のスペース区切りのあらゆる組み合わせが指定できます。
- info: ebuild によって出力される "einfo" メッセージを記録します
- warn: ebuild によって出力される "ewarn" メッセージを記録します
- error: ebuild によって出力される "eerror" メッセージを記録します
- log: いくつかの ebuild で見られる "elog" メッセージを記録します
- qa: ebuild によって出力される "QA Notice" メッセージを記録します
- PORTAGE_ELOG_SYSTEM: ログメッセージを処理するモジュールを選択します。空のままになっているとログの記録は無効になります。save、custom、syslog、mail、save_summary、および mail_summary のスペース区切りのあらゆる組み合わせが使用できます。elog を使用するには少なくとも1つのモジュールを使用する必要があります。
- save: パッケージごとに1つのログを $PORT_LOGDIR/elog、または $PORT_LOGDIR が定義されていなければ /var/log/portage/elog に保存します。
- custom: すべてのメッセージをユーザーが $PORTAGE_ELOG_COMMAND で定義したコマンドに渡します; これについては後で説明します。
- syslog: すべてのメッセージをインストールされているシステムロガーに送信します。
- mail: すべてのメッセージをユーザーが $PORTAGE_ELOG_MAILURI で定義したメールサーバーに渡します; これについては後で説明します。elog のメール機能には >=portage-2.1.1 が必要です。
- save_summary: save と似ていますが、これはすべてのメッセージを $PORT_LOGDIR/elog/summary.log、または $PORT_LOGDIR が定義されていなければ /var/log/portage/elog/summary.log に統合します。
- mail_summary: mail と似ていますが、これは emerge が終了した時にすべてのメッセージを1通のメールで送信します。
- PORTAGE_ELOG_COMMAND: custom モジュールが有効になっている場合のみ使われます。ユーザーはログメッセージを処理するコマンドを指定できます。コマンドでは2つの変数を利用できることに留意してください: ${PACKAGE} がパッケージ名およびバージョン、${LOGFILE} がログファイルの絶対パスです。例:
PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
- PORTAGE_ELOG_MAILURI: アドレス、ユーザー、パスワード、メールサーバー、ポート番号などの mail モジュールのための設定を含みます。デフォルト設定は "root@localhost localhost" です。以下はユーザー名とパスワード認証が必要な特定のポート(デフォルトは25番ポート)上の SMTP サーバー用の例です:
PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
- PORTAGE_ELOG_MAILFROM: ログメールの "from" アドレスをセットできます; セットされていない場合はデフォルトの "Portage" が使われます。
- PORTAGE_ELOG_MAILSUBJECT: ログメールの件名欄を作成できます。2つの変数が利用可能なことに留意してください: ${PACKAGE} はパッケージ名およびバージョンを表示し、${HOST} は Portage が実行されているホストの完全修飾ドメイン名を表示します。例:
PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} was merged on \${HOST} with some messages"
Portage-2.0.* で enotice を使用していたユーザーは、elog と互換性がないため enotice を完全に削除する必要があります。