EBUILD(1)

名前
ebuild - Portage システムへの低レベルインタフェース、ebuild プログラム

書式
ebuild file command [command]...

説明
ebuild プログラムは Portage システムへの直接のインタフェースである。 このプログラムによって、ebuild を特定のサブコマンドやグループコマンド で直接操作し、特定の環境や機能で実行することができる。ebuild プログラム は ebuild スクリプトと1つ以上のコマンドを引数として取り、ebuild スクリプトを解析して指定されたコマンドを実行する。ソースを取得する、 ソースを展開する、ソースをコンパイルする、「image」という一時ディレクトリ にオブジェクトファイルをインストールする、一時ディレクトリにインストール されたイメージを実際にローカルファイルシステムにインストールする、その イメージから bzip 圧縮された tar アーカイブパッケージを作成する、 などのコマンドがある。

ファイル
正しい ebuild スクリプトでなければならない。詳しい情報は ebuild(5) を参照。

コマンド

help
    パッケージ固有の情報とともにこのマニュアルページの簡略版を表示する。

setup
    パッケージ固有のセットアップとさまざまなシステムチェックを行なう。

clean
    その特定の ebuild ファイルのために作られた Portage の一時ビルド ディレクトリを消去する。通常一時ビルドディレクトリは展開された ソースコードと "インストールイメージ" (ローカルファイルシステムに インストールされるファイル、もしくはバイナリパッケージに保存される ファイル全て)を含む。ビルドディレクトリは BUILD_PREFIX 変数によって 設定される。この変数がなにか知りたい場合は emerge [-v] info を実行する。この変数を上書きしたい場合は make.conf(5) を参照。 註: FEATURES 変数に「noclean」が含まれていないかぎり、パッケージが 問題なくインストールされると Portage は一時ビルドディレクトリにある ものほとんど全てを消去する。FEATURES に noclean を追加するとたくさん のファイルが残りすぐに膨大な容量を消費してしまう結果になる。 インストール後にソースを使う必要がないのであれば、noclean を指定する ことはお奨めしない。一方、手動で rm -rf /var/tmp/portage として 一時ビルドディレクトリにあるファイル全てを消すという方法もある。

fetch
    SRC_URI で指定されているソースが全て DISTDIR (詳細は make.conf(5) 参照)にあって使える状態になっているか、正しい md5 チェックサムであるか どうかを調べる。ソースが使えない状態なら SRC_URI で指定された場所から ダウンロードしようとする。1つのファイルに対し複数のダウンロード場所が 挙げられていた場合、Portage は各々の場所のうちどこがより近いか ping を 打って調べる(現在は間違っているかもしれないが)。Gentoo Linux のミラー サイトは GENTOO_MIRRORS で定義されており、常にこの場所が最初に調べられる。 もしなんらかの理由で現在のソースやダウンロードしたばかりのソースの md5 ダイジェストが files/digest-[パッケージ名]-[バージョン-リビジョン] に 記録されている値と一致しなかった場合、警告が出力され、ebuild はエラー コード 1 で終了する。

digest
    /usr/portage/[カテゴリー]/[パッケージ名]/files/ にパッケージのダイジェスト ファイルを作成する。このダイジェストファイルには SRC_URI に書いてあるファイル 全ての md5sum が列挙されている。取得したパッケージのソースファイルが 壊れている、もしくは変な場合には、md5sum がそれを検出する。

unpack
    ebuild ファイルの src_unpack() 関数を実行し、 ビルドディレクトリ (BUILD_PREFIX) のサブディレクトリへと ソースを展開する。 src_unpack() 関数が指定されていない場合、 デフォルトの src_unpack() 関数が使用され、SRC_URI で指定されている 全ファイルを展開する。ソースは普通 ${BUILD_PREFIX}/[パッケージ名]-[バージョン-リビジョン]/work に展開される。このディレクトリは ${WORKDIR} 変数で参照することが できる。 ebuild を作成しているなら、ebuild スクリプトの先頭で定義されている ${S} 変数(ソースディレクトリ) が展開されたソースのあるディレクトリを 指していることを確認しよう。${S} はデフォルトでは ${WORKDIR}/${P} と定義されているので、あまり変更する必要はない。 src_unpack() 関数は そのままコンパイルに取りかかれるようソースに適切なパッチを当てる 関数でもある。

compile
    ebuild ファイルの中で指定された src_compile() 関数を実行し、 展開したソースをコンパイルする。src_compile() の開始時には カレントディレクトリが ${S} に設定される。 src_compile() の 終了時にはソースは完全にコンパイルされていなければならない。

test
    全て正しくビルドされたかどうか検証するため、 パッケージ固有のテストケースを実行する。

preinst
    稼働中のファイルシステムにパッケージをインストールする前に実行 する必要があるパッケージ固有のアクションを実行する。

install
    src_install() 関数を実行し、パッケージを一時 インストール ディレクトリ にインストールする。完了すると、 インストールディレクトリ (${BUILD_PREFIX}/[パッケージ名]-[バージョン-リビジョン]/image) にはローカルファイルシステムにインストールされるべきファイルか バイナリパッケージに含まれるべきファイル全てがインストールされる。

postinst
    稼働中のファイルシステムにパッケージをインストールしたあと実行 する必要があるパッケージ固有のアクションを実行する。有益なメッセージが 表示されることが多い。

qmerge
    この関数は インストールディレクトリ の全てのファイルを稼働中の ファイルシステムにインストールする。そのプロセスは、まず(指定されて いれば) pkg_preinst() 関数が実行され、そしてファイルが稼働中の ファイルシステムにインストールされ、インストールされたファイルの md5 ダイジェストが /var/db/pkg/${CATEOGRY}/${PN}-[バージョン-リビジョン]/CONTENTS に記録される。全ファイルがインストールされると、pkg_postinst() 関数が(指定されていれば)実行される。

merge
    通常、ebuild をインストールするには、fetch、unpack、 compile、install そして qmerge する必要がある。 単に ebuild をインストールしたいだけならこのコマンドを使ってもよい。 このコマンドはこれら5つのステップ全てを実行し、ある特定のステップが 失敗したらそこで止まってくれる。

unmerge
    この関数は(指定されていれば)まず pkg_prerm 関数を実行する。 次に現在のファイルシステムから、パッケージの内容が書かれているファイル に挙げられているもののうち、md5 チェックサムと更新時刻が記録と一致する ファイル全てを削除する。空のディレクトリは全て再帰的に削除される。 最後に(指定されていれば) pkg_postrm 関数が実行される。 パッケージの新しいバージョンを先にインストールし、それから古い バージョンを unmerge するのは安全である。実のところ、そうするのが 推奨パッケージアップグレード方法である。

prerm
    ファイルシステムからパッケージが削除される前に実行されなければならない パッケージ固有のアクションを実行する。unmerge も参照。

postrm
    ファイルシステムからパッケージが削除されたあとに実行されなければならない パッケージ固有のアクションを実行する。unmerge も参照。

config
    emerge プロセスが完了したあとに実行が必要なパッケージ固有の設定を実行する。 設定ファイルのセットアップや、それと同じようにユーザが実行しておきたい セットアップなどが多い。

package
    merge コマンドとよく似ているが、ソースを取得、展開、コンパイル、 そしてインストールしたあと、${PKGDIR}/All (${PKGDIR} はデフォルトでは /usr/portage/packages) に .tbz2 バイナリパッケージが作成される。 ${PKGDIR}/${CATEGORY} には ${PKGDIR}/All にあるパッケージ本体への シンボリックリンクが作成される。

rpm 一時 インストールディレクトリ にあるファイルから RedHat RPM パッケージをビルドする。現時点では ebuild の依存情報は RPM には 反映されない。

バグ報告
バグ報告は http://bugs.gentoo.org/ 経由で行なってください。

関連項目
emerge(1), ebuild(5), make.conf(5)

/usr/sbin/ebuild.sh スクリプト

/usr/lib/portage/bin にある補助アプリケーション

ファイル

/etc/make.conf
    ビルドプロセスのための変数が書かれており、make.globals で設定された 変数を上書きする。

著者
Achim Gottinger <achim@gentoo.org>
Daniel Robbins <drobbins@gentoo.org>
Nicholas Jones <carpaski@gentoo.org>
Mike Frysinger <vapier@gentoo.org>

CVS ヘッダ
原文: ebuild.1,v 1.16