/etc/portage/make.conf
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
/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.conf の man page を参照してください。
user $
man make.conf
ほとんどの変数は、必須ではなく、複数行にまたいでもよく、ただし複数回現れてはいけません。
異なる設定をする際には異なる変数が必要です。この記事の例を絶対的なものもしくは必要最小限のものとは考えず、必要な変数だけを設定してください。
CHOST
CHOST 変数はシステムの build-host を設定するために、ebuild の configure ステップに渡されます。
適切な CHOST 変数の値は Portage のプロファイルによって既に設定されており、この値を更新することはビルドチェーンの理解や経験を要します。
さらなる情報に関しては、CHOST を参照してください。
CFLAGS と CXXFLAGS
CFLAGSとCXXFLAGS変数は、すべてのパッケージ(そのパッケージで問題を起こすことが知られているフラグを除外する例外がいくつかありますが)のインストールにおいて使用されるビルド・コンパイル時のフラグを定義します。CFLAGS変数がCベースのアプリケーション用で、CXXFLAGS変数はC++ベースのアプリケーション用です。多くのユーザーは両方の変数を同じ内容にしておくことになるでしょう。
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 設定で拡張されます。
CONFIG_PROTECT="/var/bind"
詳しくは Gentoo ハンドブックの環境変数をご覧ください。
FEATURES
FEATURES変数はユーザーがシステムで有効にしたいPortageの機能のリストを格納していて、Portageの振る舞いに効果的に影響します。デフォルトでは /usr/share/portage/config/make.globals によって設定されていますが、/etc/portage/make.confによって簡単に更新することが可能です。この変数はインクリメンタル的な変数ですので、FEATURES変数はGentooプロファイルで設定されている値を直接書き換えることなく値を追加できます。
FEATURES="keepwork"
さらなる情報に関しては、GentooハンドブックのPortage featuresやFEATURESのページを参照してください。利用可能な機能の完全なリストに関しては、man 5 make.confを参照してください。
さらなる情報に関しては、FEATURES の記事を参照してください。
GENTOO_MIRRORS
GENTOO_MIRRORS を参照してください。
MAKEOPTS
MAKEOPTS変数は、パッケージがソースからビルドされる時にmakeに渡す引数を指定します。
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 つまでのビルドジョブを同時に行う場合:
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 となります。他についても同様です。
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 を置く場所に注意してください! 信頼されたユーザのみがこの場所への書き込みアクセスを許可されるべきです。
DISTDIR=/var/gentoo/distfiles
さらなる情報については DISTDIR の記事をお読みください。
PKGDIR
PKGDIR は Portage がバイナリパッケージを保存する場所です。デフォルトではこの場所は /var/cache/binpkgs に設定されています。
以前は、バイナリパッケージは ${PORTDIR}/packages に設定されていて、これはデフォルトでは /usr/portage/packages に解決されていました。
さらなる情報については man make.conf を参照してください。
USE
USE 変数を使って、システム全体の 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にどのソフトウェアライセンスが認められているか伝えます。認められていないライセンスを持つパッケージはシステムにインストールできません。
ACCEPT_LICENSE="*"
すべてのライセンスを受諾するための望ましい方法は -@EULA を設定することです。これにより、プロプライエタリなソフトウェアの条項をユーザが注意深く確認することができます。
ACCEPT_LICENSE="* -@EULA"
ACCEPT_LICENSE="-* @FREE"
LINGUAS
ローカライゼーションガイドの LINGUAS を参照してください。
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 を参照してください。
# ローカライゼーションの値を定義する
L10N="de pt-BR en en-US en-GB"
一般的な2文字の言語コード(
de
やfr
のようなもの)はLINGUASとL10Nで等価ですが、より複雑なエントリーでは文法が異なります。これはL10NがIETF language tags (BCP 47 とも呼ばれる)を使っているためです。たとえば、LINGUASでのpt_BR
とsr@latin
は、L10Nではそれぞれpt-BR
とsr-Latn
になります。VIDEO_CARDS
このUSE_EXPAND変数が取りうる値については、VIDEO_CARDSを参照してください。
VIDEO_CARDS を適切な値に設定することで、正しいドライバが取り込まれるでしょう:
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 のセクションを参照してください。
さらなる詳細に関しては、AMDGPU、Intel、Nouveau、または NVIDIA のベージを参照してください。
関連項目
- Portage 変数 (AMD64 ハンドブック)
- Portage の機能 (AMD64 ハンドブック)
- 環境変数 (AMD64 ハンドブック)
- Portageの高度な機能 (AMD64 ハンドブック)
- Emerge issues with having
/.git/index.lock
in root
外部資料
- make.conf - custom settings for Portage - make.conf man ページ。
参照
- ↑ Profile upgrade to version 23.0 available、gentoo.org、2024 年 5 月 22 日。2024 年 5 月 24 日取得。
- ↑ https://devmanual.gentoo.org/general-concepts/use-flags/#use_expand-and-arch-use-flags