/etc/portage/make.conf

From Gentoo Wiki
< /etc‎ | portage
Jump to:navigation Jump to:search
This page is a translated version of the page /etc/portage/make.conf and the translation is 100% complete.

/etc/portage/make.conf (かつては /etc/make.conf にありました) は、Portage の環境を全ユーザーに対してカスタマイズするために使用される、メインの設定ファイルです。他の Portage 設定ファイルの多くは、/etc/portage ディレクトリに格納されます。

make.conf 内の設定は、emerge されるすべてのパッケージに対して適用されます。これらの設定によって、Portage の機能のうち多くの要素、例えばグローバル USE フラグ言語 (L10N) 設定、Portage のミラーなどが制御されています。

基本的な設定は Stage ファイル展開中にインストールされます。また、設定の例は /usr/share/portage/config/make.conf.example で見つけることができます。

多くの Portage 設定ファイルと同様に、make.conf はディレクトリとすることができます。その場合はディレクトリの内容がまとめられ、それが単一のファイルであるかのように振る舞います。

関連
make.conf の使用についてはハンドブックでも、特に USE フラグPortage の機能、そして 変数のセクションで、触れています。完全なドキュメントについては man make.conf を参照してください。

優先順位

最終的なPortageの動作はmake.confのみに基づくものではありません。このファイルで定義されたグローバルな設定は、環境変数や/etc/portage/package.use/での個々のパッケージに対しての設定によって変更(もしくは再定義)される可能性があります。ディストリビューションによって管理されるデフォルトの設定も利用可能です。(一部はPortageによって、一部は使用中のprofileによって決められています。)

メモ
Portageは古い/etc/make.confにあるファイルもサポートしていますが、/etc/portage/make.confを使用することが推奨されます。2つのファイルが存在するときは/etc/portage/make.confのファイルが/etc/make.confのファイルよりも優先されます。

変数

make.conf には多くの設定可能な変数がありますが、この記事ではもっとも一般的に使用される変数のみを例や(可能ならば)詳細へのリンクとともに説明します。さらなる詳細やすべての使用可能な変数については make.confman page を参照してください。

user $man make.conf

ほとんどの変数は、必須ではなく、複数行にまたいでもよく、ただし複数回現れてはいけません。

メモ
異なる設定をする際には異なる変数が必要です。この記事の例を絶対的なものもしくは必要最小限のものとは考えず、必要な変数だけを設定してください。

CHOST

CHOST 変数はシステムの build-host を設定するために、ebuild の configure ステップに渡されます。

警告
適切な CHOST 変数の値は Portage のプロファイルによって既に設定されており、この値を更新することはビルドチェーンの理解や経験を要します。
メモ
プロファイルバージョン 23.0 以降、make.conf ファイル内で CHOST を指定するのは推奨されません。[1]
関連
さらなる情報に関しては、CHOST を参照してください。

CFLAGS と CXXFLAGS

CFLAGSCXXFLAGS変数は、すべてのパッケージ(そのパッケージで問題を起こすことが知られているフラグを除外する例外がいくつかありますが)のインストールにおいて使用されるビルド・コンパイル時のフラグを定義します。CFLAGS変数がCベースのアプリケーション用で、CXXFLAGS変数はC++ベースのアプリケーション用です。多くのユーザーは両方の変数を同じ内容にしておくことになるでしょう。

ファイル /etc/portage/make.conf一般的に用いられる、無難なCFLAGSとCXXFLAGSの設定
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
関連
さらなる情報に関しては、GCC の最適化のページ、safe CFLAGS、および Gentoo ハンドブックの CFLAGS と CXXFLAGS を参照してください。FAQ も参照してください。

CONFIG_PROTECT

CONFIG_PROTECT 変数には、Portage が自動変更から保護するファイルやディレクトリの、スペース区切りリストが含まれています。保護された設定保存場所内のファイルに提案された変更は、システム管理者による手動マージが必要になるでしょう (dispatch-conf または同様のマージツールを参照してください)。

現在保護されている場所のリストは portageq で表示することができます:

user $portageq envvar CONFIG_PROTECT
/etc /usr/share/config /usr/share/gnupg/qualified.txt

portageq の使用は、emerge コマンドの詳細な情報出力から正規表現検索を実行することに対する、短い代替です:

user $emerge --verbose --info | grep -E '^CONFIG_PROTECT='
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT 内に定義されているファイルまたはサブディレクトリは、CONFIG_PROTECT_MASK 変数を通じて保護対象から除外することもできます。ある親ディレクトリは保護されるべきだが、その下の特定の子ディレクトリはそうでないという場合に、マスクは有用です。

変数には Portage のインストールとユーザーの Gentoo プロファイルによって制御されるデフォルトの設定があります。 これはシステム環境 (/etc/env.d ファイルから変数の更新するアプリケーションでよく使用されます) と、ユーザーの /etc/portage/make.conf 設定で拡張されます。

ファイル /etc/portage/make.confCONFIG_PROTECT 定義例
CONFIG_PROTECT="/var/bind"

詳しくは Gentoo ハンドブックの環境変数をご覧ください。


FEATURES

FEATURES変数はユーザーがシステムで有効にしたいPortageの機能のリストを格納していて、Portageの振る舞いに効果的に影響します。デフォルトでは /usr/share/portage/config/make.globals によって設定されていますが、/etc/portage/make.confによって簡単に更新することが可能です。この変数はインクリメンタル的な変数ですので、FEATURES変数はGentooプロファイルで設定されている値を直接書き換えることなく値を追加できます。

ファイル /etc/portage/make.confkeepworkをPortageのFEATURESに追加する
FEATURES="keepwork"

さらなる情報に関しては、GentooハンドブックのPortage featuresFEATURESのページを参照してください。利用可能な機能の完全なリストに関しては、man 5 make.confを参照してください。

関連
さらなる情報に関しては、FEATURES の記事を参照してください。

GENTOO_MIRRORS

関連
GENTOO_MIRRORS を参照してください。

MAKEOPTS

MAKEOPTS変数は、パッケージがソースからビルドされる時にmakeに渡す引数を指定します。

ファイル /etc/portage/make.confハイパースレッディングが有効になっていて、8GB の RAM を使える、デュアルコアプロセッサに推奨される設定
MAKEOPTS="-j4"
関連
さらなる情報に関しては、MAKEOPTS のページを参照してください。
メモ
EMERGE_DEFAULT_OPTS 変数もビルドの振る舞いに影響を及ぼすので、こちらも参照してください。

EMERGE_DEFAULT_OPTS

EMERGE_DEFAULT_OPTS は、emerge コマンドラインの末尾に付加される項目を定義する、Portage のための変数です。

EMERGE_DEFAULT_OPTS は、同時に実行できるパッケージビルド数を指定する --jobs N オプションや、システム負荷 (ロードアベレージ) の最大値によってどこまでの並列度を許容するかを指定する --load-average X.Y オプションを介して、Portage に並列 emerge 操作を許可するためによく使用されます。

例えば、3 つまでのビルドジョブを同時に行う場合:

ファイル /etc/portage/make.conf3ジョブ並行のビルドを有効にする例
EMERGE_DEFAULT_OPTS="--jobs 3"

詳細は EMERGE_DEFAULT_OPTS の記事をみてください

PORTAGE_SCHEDULING_POLICY

関連
Portage niceness の記事を参照してください。

PORTAGE_TMPDIR

PORTAGE_TMPDIR 変数は Portage のための一時ファイルの場所を指定します。デフォルト値は /var/tmp です。これによって、ビルドの場所は /var/tmp/portage となり、Portage の ccache サポートの場所は /var/tmp/ccache となります。他についても同様です。

ファイル /etc/portage/make.confPORTAGE_TMPDIRのデフォルト設定
PORTAGE_TMPDIR="/var/tmp"

システムによっては /var/tmp/noexec オプション付きでマウントされているかもしれません。その場合、パッケージをビルドするときに emerge によって以下のエラーが表示されるでしょう:

user $emerge --ask package
Can not execute files in /var/tmp/portage
Likely cause is that you've mounted it with one of the
following mount options: 'noexec', 'user', 'users'
 
Please make sure that portage can execute files in this directory.

この場合、問題になっているオプションを /etc/fstab から削除できないなら、PORTAGE_TMPDIR を別のディレクトリに設定すべきです。

十分なメモリがある場合は、PORTAGE_TMPDIR を RAM 内にマウントすることで、パッケージのビルドを高速化させることができます。詳細については Portage TMPDIR on tmpfs の記事をお読みください。

DISTDIR

DISTDIR変数はPortageがソースコードのアーカイブをダウンロードする場所を設定します デフォルトの値は、新しいインストールでは/var/cache/distfilesになっています。以前のデフォルトは ${PORTDIR}/distfiles で、これはさらにデフォルトでは /usr/portage/distfiles に解決されていました。

このDISTDIR変数は/etc/portage/make.confで設定することができます。

警告
DISTDIR を置く場所に注意してください! 信頼されたユーザのみがこの場所への書き込みアクセスを許可されるべきです


ファイルの完全性チェックと展開はアトミックではない操作なので、その間にファイルが差し替えられて、システムに侵入される攻撃が考えられます。
ファイル /etc/portage/make.conf異なるDISTDIRの位置を使用する
DISTDIR=/var/gentoo/distfiles

さらなる情報については DISTDIR の記事をお読みください。

PKGDIR

PKGDIRPortage がバイナリパッケージを保存する場所です。デフォルトではこの場所は /var/cache/binpkgs に設定されています。

以前は、バイナリパッケージは ${PORTDIR}/packages に設定されていて、これはデフォルトでは /usr/portage/packages に解決されていました。

さらなる情報については man make.conf を参照してください。

USE

USE 変数を使って、システム全体USE フラグを設定したり無効にしたりすることができます。この変数はスペース区切りリストで、複数行にまたがってもかまいません。

ファイル /etc/portage/make.confグローバルな USE フラグの例
USE="-kde -qt5 ldap"
関連
完全な説明については USE フラグの記事を参照してください。個別のパッケージごとの USE フラグの設定については、USE フラグのパッケージ単位の制御 と、/etc/portage/package.use ファイルを参照してください。
メモ
USE フラグをグローバルに設定しようとするときは、それだけの価値があるか、そしてシステムにどう影響するか、もしかすると一部のパッケージだけに個別にフラグを設定したほうがいいのではないかと、常に考慮してください。
ヒント
USE フラグの変更がどう影響するかを world ファイルへ書き出す前に確認するため、コマンドライン上で USE フラグを一時的に設定することができます: USE="[テストしたい USE フラグ]" emerge --pretend --verbose --update --deep --newuse world

ACCEPT_LICENSE

ACCEPT_LICENSE変数は、Portageにどのソフトウェアライセンスが認められているか伝えます。認められていないライセンスを持つパッケージはシステムにインストールできません。

ファイル /etc/portage/make.confすべてのライセンスをすべてのパッケージに認める
ACCEPT_LICENSE="*"

すべてのライセンスを受諾するための望ましい方法は -@EULA を設定することです。これにより、プロプライエタリなソフトウェアの条項をユーザが注意深く確認することができます。

ファイル /etc/portage/make.confすべてのパッケージについて、プロプライエタリ以外のすべてのライセンスを受諾する
ACCEPT_LICENSE="* -@EULA"
ファイル /etc/portage/make.conf自由ソフトウェアのみを受諾する
ACCEPT_LICENSE="-* @FREE"

LINGUAS

関連
ローカライゼーションガイドの LINGUAS を参照してください。
ファイル /etc/portage/make.conf
LINGUAS="de pt_BR en en_US en_GB"

USE_EXPAND

USE_EXPAND変数は、Portage 2.0.51.20以降においてはprofiles/base/make.defaultsで設定されているリストです。[2]

CPU_FLAGS_*

関連
さらなる情報に関しては、CPU_FLAGS_* のベージを参照してください。

CPU_FLAGS_* 変数は Portage に CPU で許される CPU フラグ (機能) を伝えます。この情報はその対象の機能に関するパッケージビルドの最適化に使われます。現在対応している変数は、CPU_FLAGS_X86 (amd64 および x86 アーキテクチャ向け)、CPU_FLAGS_ARM (arm および arm64 アーキテクチャ向け)、および CPU_FLAGS_PPC (ppc および ppc64 アーキテクチャ向け) です。

cpuid2cpuflagsユーティリティー(app-portage/cpuid2cpuflagsパッケージ内にあります)を使ってシステムのプロセッサーがサポートしているCPUフラグの完全な一覧を調べることができます。パッケージをインストールしたら以下を実行します:

user $cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3

これらのフラグは /etc/portage/make.conf/etc/portage/package.use/ に追加できます。

INPUT_DEVICES

Xorg/ガイドのページの make.conf のセクションや、変数の取りうる値についてはこちらを参照してください。

L10N

ローカライゼーションガイドの L10N を参照してください。

ファイル /etc/portage/make.conf
# ローカライゼーションの値を定義する
L10N="de pt-BR en en-US en-GB"
メモ
一般的な2文字の言語コード(defrのようなもの)はLINGUASL10Nで等価ですが、より複雑なエントリーでは文法が異なります。これはL10NIETF language tags (BCP 47 とも呼ばれる)を使っているためです。たとえば、LINGUASでのpt_BRsr@latinは、L10Nではそれぞれpt-BRsr-Latnになります。

VIDEO_CARDS

このUSE_EXPAND変数が取りうる値については、VIDEO_CARDSを参照してください。

VIDEO_CARDS を適切な値に設定することで、正しいドライバが取り込まれるでしょう:

ファイル /etc/portage/make.confVIDEO_CARDS を intel nvidia radeon vesa に設定する
VIDEO_CARDS="intel nvidia radeon vesa"

使用するドライバの名前は置き換えてください。以下はよく使用されるマシンとビデオカードの組み合わせに対応するドライバ名の表です:

マシン ディスクリートビデオカード VIDEO_CARDS
Intel x86 なし Intel#機能サポート を参照
x86/ARM Nvidia nvidia
任意 Maxwell、Pascal、Volta 以外の Nvidia nouveau
任意 Sea Islands 以降の AMD amdgpu radeonsi
任意 ATI および古い AMD radeon#Feature support を参照
任意 Intel intel
Raspberry Pi N/A vc4
QEMU/KVM 任意 virgl
WSL 任意 d3d12

VIDEO_CARDS の値を設定または変更した後は、変更を反映させるために、忘れずに次のコマンドを使用してシステムを更新してください:

root #emerge --ask --changed-use --deep @world

普通のユーザーにとって、もしグラフィカルなデスクトップ環境を使用するのならば、この変数は明確に定義されるべきです。さらなる情報に関してはXorg ガイドの make.conf のセクションを参照してください。

さらなる詳細に関しては、AMDGPUIntelNouveau、または NVIDIA のベージを参照してください。

関連項目

外部資料

参照