ハンドブック:Alpha/Portage/変数
Portage の設定
前に触れたように、Portage は多くの変数を通じて設定することができます。これらは /etc/portage/make.conf か、または /etc/portage/ のサブディレクトリのどれかで定義する必要があります。さらなる網羅的な情報については make.conf や portage の man page を参照してください:
user $
man make.conf
user $
man portage
ビルドに特有のオプション
configure とコンパイラーのオプション
Portage がアプリケーションをビルドする場合には、以下の変数の内容をコンパイラーや configure スクリプトに渡します:
- CFLAGS と CXXFLAGS
- C や C++ のコンパイルに使いたいコンパイラーフラグを定義します。
- CHOST
- アプリケーションの configure スクリプト向けにビルドホストの情報を定義します。
- MAKEOPTS
- make コマンドに渡されます。通常は、コンパイルの際に使用される並列処理の数を定義するようにセットされます。make のオプションについての詳細は make の man page で見つけられます。
USE 変数も configure やコンパイルの間に使用されますが、これについては以前の章で詳しく説明しました。
マージのオプション
Portage はあるソフトウェアタイトルの新しいバージョンをマージし終わると、古いバージョンの使われなくなったファイルをシステムから削除します。Portage は古いバージョンを unmerge する前にユーザーに5秒間の猶予を与えます。この5秒は CLEAN_DELAY 変数によって定義されています。
EMERGE_DEFAULT_OPTS をセットすることで、emerge が実行される際にいつも特定のオプションを使用させることができます。便利なオプションは --ask
、--verbose
、--tree
などです。
設定ファイルの保護
Portage によって保護される場所
Portage は、ファイルが保護された場所に格納されていない場合、ソフトウェアタイトルの新しいバージョンによって提供されたファイルを上書きします。これらの保護された場所は CONFIG_PROTECT 変数によって定義されており、一般的には設定ファイルの場所です。ディレクトリのリストはスペースで区切られています。
このような保護された場所に書き込まれるファイルはリネームされ、ユーザーは新しいバージョンの(おそらくは)設定ファイルの存在について警告されます。
現在の CONFIG_PROTECT の設定について調べるには、emerge --info の出力を使います:
user $
emerge --info | grep 'CONFIG_PROTECT='
Portage の設定ファイル保護についてのさらなる情報は、emerge の manpage の CONFIGURATION FILES 節にあります。
user $
man emerge
ディレクトリを除外する
保護された場所の一定のサブディレクトリを 'unprotect' したい場合、ユーザーは CONFIG_PROTECT_MASK 変数を利用できます。
ダウンロードオプション
サーバーの場所
要求された情報やデータがシステムにない場合、Portage はそれをインターネットから取得します。さまざまな情報やデータチャンネルのサーバーの場所は、以下の変数によって定義されています:
- GENTOO_MIRRORS
- ソースコード(distfiles)を含むサーバーの場所のリストを定義します。
- PORTAGE_BINHOST
- そのシステム向けのビルド済みパッケージを含む特定のサーバーの場所を定義します。
第三の設定は、ユーザーがローカル Gentoo リポジトリを更新するのに使う rsync サーバーの場所に関するものです。これは /etc/portage/repos.conf ファイル(または、ディレクトリとして定義されている場合にはそのディレクトリの中のファイル)に定義されています:
- sync-type
- サーバーの種類を定義しており、デフォルトは
rsync
です。 - sync-uri
- Portage が Gentoo リポジトリを取得するのに使う特定のサーバーを定義します。
GENTOO_MIRRORS、sync-type、および sync-uri 変数は mirrorselect アプリケーションを通して自動的にセットできます。もちろん、使用する前にまず app-portage/mirrorselect がインストールされている必要があります。詳細については mirrorselect のオンラインヘルプを参照してください:
root #
mirrorselect --help
プロキシサーバーの使用が必要な環境では http_proxy、ftp_proxy、および RSYNC_PROXY 変数を定義できます。
フェッチコマンド
Portage がソースコードを取得する必要がある場合、デフォルトでは wget を使用します。これは FETCHCOMMAND 変数を通して変更できます。
Portage は部分的にダウンロードされたソースコードの取得を再開することができます。デフォルトでは wget を使用しますが、これは RESUMECOMMAND 変数を通して置き換えることができます。
FETCHCOMMAND や RESUMECOMMAND がソースコードを正しい場所に格納することを確認してください。これらの変数の中では、\${URI} および \${DISTDIR} 変数を使用してソースコードの場所と distfiles の場所をそれぞれ示すことができます。
また、FETCHCOMMAND_HTTP、FETCHCOMMAND_FTP、RESUMECOMMAND_HTTP、RESUMECOMMAND_FTP などでプロトコルごとのハンドラーを定義することもできます。
rsync の設定
Portage が Gentoo リポジトリの更新に使用する rsync コマンドは置き換えることができませんが、rsync コマンドに関するいくつかの変数をセットすることは可能です:
- PORTAGE_RSYNC_OPTS
- 同期の間に使用される多くのデフォルト変数をセットします。各変数はスペース区切りです。これらは、自分が何をしているのか正確に分かっているのでない限り変更すべきではありません。一定の絶対に必要なオプションについては、たとえ PORTAGE_RSYNC_OPTS が空であっても常に使用されることに注意してください。
- PORTAGE_RSYNC_EXTRA_OPTS
- 同期の際の追加オプションをセットするのに使われます。各オプションはスペースで区切られている必要があります:
--timeout=<number>
- rsync が接続をタイムアウトしたとみなす前に rsync 接続が待機できる秒数を定義します。この変数のデフォルトは
180
ですが、ダイヤルアップ接続のユーザーや遅いコンピューターを使う個人はこれを300
かそれ以上にセットしたくなるかもしれません。 --exclude-from=/etc/portage/rsync_excludes
- rsync が更新プロセス中に無視すべきパッケージやカテゴリをリストしたファイルを指定します。この例では、/etc/portage/rsync_excludes を指定しています。
--quiet
- 画面への出力を減らします。
--verbose
- 完全なファイルリストを出力します。
--progress
- 各ファイルについて進捗メーターを表示します。
- PORTAGE_RSYNC_RETRIES
- rsync が SYNC 変数で指定されたミラーから手を引く前に接続を試みる回数を定義します。この変数のデフォルトは
3
です。
これらのオプションやその他の詳細については man rsync を読んでください。
Gentoo の設定
ブランチの選択
ACCEPT_KEYWORDS 変数を使ってデフォルトのブランチを変更することができます。デフォルトはアーキテクチャの stable ブランチです。Gentoo のブランチについては次の章に詳細な情報があります。
Portage の機能
FEATURES 変数を通じて、一定の portage の機能を有効化できます。Portage の機能については以前の章で説明しました。
Portage の挙動
リソースの管理
PORTAGE_NICENESS 変数により、ユーザーは Portageが 実行中に使用する nice 値を増加させたり減少させたりできます。PORTAGE_NICENESS の値は Portage の現在の nice 値に加算されます。
nice 値についての詳細は、Portage niceness と nice の man ページを見てください:
user $
man nice
出力の動作
NOCOLOR 変数は Portage が色付きの出力の使用を無効化すべきかを定義しており、デフォルトは false
です。