Gentoo Logo

Portage ユーザガイド

目次:

1.  はじめに

最新Portage の取得

Gentoo Linux をインストールし、少しの間使用していると、いくつかのパッケージにいくつかのバグあるいは、 おかしな動作を見つけるかもしれません。また最新の Gentoo Linux ソフトウェアパッケージをインストールしたり、 現在インストールされているパッケージを更新したりしたいでしょう。 最新の Portage ツリーを得るために使用することが可能なanonymous rsync サーバを提供しています。ここでは、その使用方法を述べます。

Portageツリーを同期させるために次のコメンドを使用してください。

コード表示 1.1: Getting portage up to date

# emerge sync

emerge syncは自動的に--cleanオプションを設定します。 これは、/usr/portage ツリー のあなたの個人的な変更や追加を削除してしまいます。 もしあなたが作成したebuildをメインPortage ツリーと別に管理したいのなら、PORTDIR_OVERLAY機能を使用してください。

コード表示 1.2: Using PORTDIR_OVERLAY

この行を/etc/make.confに加えてください。 
   PORTDIR_OVERLAY="/dir/where/your/ebuilds/are" 

もしあなたがたくさんのebuildの修正や、bugの修正をし、Gentoo Linux Development Teamの一員になりたいと考えているなら、 Daniel RobbinsSeemant Kulleen に連絡して、情報を得てください。

Portage の更新

Portage ツリーを使う前に、Portage を更新することは重要です。更新をするためには、 下記を実行してください。

コード表示 1.3: Updating Portage

これは、アップデートされるであろうパッケージの一覧を表示します。
# emerge -up system 
これは、必要なパッケージのアップデートを行います。
# emerge -u system 

これで portage の最新のバージョンを使うでしょう。 そして、インストールされたソフトウェアを更新するために、ebuild システムを使用しはじめることができます。

2.  emerge の導入

emerge --pretend

パッケージをインストールする前に、何が依存によってインストールされるか、 どのパッケージがアップーデートされるかを知っておくのは良い考えです。emerge --pretend またはemerge -p でこのことができます。

コード表示 2.1: Using emerge -p

# emerge -p xchat

These are the packages that I would emerge, in order.

Calculating dependencies......... done!
[ebuild   U] sys-libs/zlib-1.1.3-r2 to /
[ebuild   U] dev-libs/glib-1.2.10 to /
[ebuild N  ] media-libs/jpeg-6b-r2 to /
[ebuild N  ] x11-base/xfree-4.0.3-r3 to /
[ebuild N  ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N  ] media-libs/giflib-4.1.0-r3 to /
[ebuild N  ] media-libs/tiff-3.5.6_beta to /
[ebuild N  ] media-libs/imlib-1.9.10 to /
[ebuild N  ] net-irc/xchat-1.4.3 to /

特にこの場合、X がインストールされていないマシン上で xchatをemergeすることを想定しています。 このように、emerge --pretend は最初に指定されたパッケージを満足するために、 いくつかの依存するパッケージが必要であることを正確に確認します。 特に、sys-libs/zlibdev-libs/glib は更新される必要があります。 そしてその後の一連の ebuild (もちろん、x11-base/xfree を含む) は、 emerge される必要があります。

USE 環境変数と emerge

上記では、/etc/make.conf 内の USE 変数に gnome は定義されていないシステム上で emerge --pretend を実行しました。 これは、オプションの GNOME サポートが、その場合、有効にならないことを意味します。 しかしながら、xchat はオプションの GNOME サポートを持っています。 したがって、/etc/make.conf 内の USE 環境変数に gnome を追加した後の emerge --pretend の出力を見てみましょう。

コード表示 2.2: Using emerge with USE variables

# emerge -p xchat

These are the packages that I would emerge, in order.

Calculating dependencies............................ done!
[ebuild N  ] media-libs/jpeg-6b-r2 to /
[ebuild N  ] gnome-base/libghttp-1.0.9 to /
[ebuild N  ] media-libs/audiofile-0.2.1 to /
[ebuild N  ] media-sound/esound-0.2.22-r2 to /
[ebuild N  ] gnome-base/gnome-env-1.0 to /
[ebuild N  ] gnome-base/libxml-1.8.11 to /
[ebuild N  ] gnome-base/ORBit-0.5.8 to /
[ebuild N  ] gnome-base/oaf-0.6.5 to /
[ebuild   U] dev-libs/glib-1.2.10 to /
[ebuild N  ] net-libs/libwww-5.3.2-r1 to /
[ebuild N  ] media-libs/giflib-4.1.0-r3 to /
[ebuild N  ] dev-util/guile-1.4-r3 to /
[ebuild   U] sys-libs/zlib-1.1.3-r2 to /
[ebuild N  ] x11-base/xfree-4.0.3-r3 to /
[ebuild N  ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N  ] media-libs/tiff-3.5.6_beta to /
[ebuild N  ] media-libs/imlib-1.9.10 to /
[ebuild N  ] gnome-base/gnome-libs-1.2.13 to /
[ebuild N  ] gnome-base/glibwww-0.2-r1 to /
[ebuild N  ] gnome-base/gdk-pixbuf-0.11.0 to /
[ebuild N  ] gnome-base/gconf-1.0.0 to /
[ebuild N  ] gnome-base/gnome-vfs-1.0.1 to /
[ebuild N  ] gnome-base/control-center-1.4.0.1 to /
[ebuild N  ] gnome-base/scrollkeeper-0.2 to /
[ebuild N  ] dev-util/xml-i18n-tools-0.8.1 to /
[ebuild N  ] gnome-base/libglade-0.16-r1 to /
[ebuild N  ] gnome-base/gnome-core-1.4.0.4 to /
[ebuild N  ] net-irc/xchat-1.4.3 to /

見ての通り、USE 変数に gnome を追加することで、 emerge はxchat がオプションの GNOME サポートを含めるべきであることを認識します。 もちろん、このオプションの GNOME サポートが、正確にコンパイルかつ実行されるために、 GNOME が最初にインストールされます。emerge はこの全ての出力を表示し、 emerge されるべき ebuild のリストへ GNOME によって必要とされる様々なパッケージを追加します。 USE 変数は、正確に設定されない場合があり、 これは様々なオプションの拡張のためのサポートを不意に含めたり除いたりということの原因になります。 そのため、実際の emerge を実行する前にemerge --pretend を常に実行するように勧めます。 特に、新しい見慣れないebuild のために。 これであなたが何を期待しているかがわかるでしょう。:) 一旦すべてが OK であると確認できれば、--pretend を取ることにより、 実際の emerge を実行することができます。

コード表示 2.3: Emerging xchat

# emerge xchat

全ての依存物が emerge された後、(もしそれらがすでに存在する場合、 すべてのパッケージがemergeされるとはかぎりませんが) xchatソースは (/usr/portage/distfiles に)ダウンロードされ、検査、展開され、 コンパイル、そして一時的なディレクトリ(sandboxと呼びます)にインストールされます。その後、 ローカルファイルシステムへと emerge されます。 インストールされたファイルと全てのファイルの md5sum を含むパッケージデータベースは、 /var/db/pkg/net-irc/xchat-1.4.3/CONTENTS に作成されます。

あるパッケージでどのUSEフラグが使用できるか、そしてあなたのシステムでどれがオンになっているか知りたい場合には、-cまたは--verbose引数をemerge -pへ加ええます。

コード表示 2.4: --verboseを使用してのemerge

 
# emerge -pv gentoo-sources 
 
These are the packages that I would merge, in order: 
 
Calculating dependencies ...done! 
[ebuild    U ] sys-kernel/gentoo-sources-2.4.20-r5 -build +crypt -evms2 
-aavm -usagi 

変更点を知る

すでにインストールしてあるパッケージのバージョンとPortageに存在するパッケージのバージョンの間の変更点を知りたい場合には、--changelogまたは-l引数を加えます。

コード表示 2.5: Viewing the ChangeLog

 
# emerge -pl mozilla 
 
These are the packages that I would merge, in order: 
 
Calculating dependencies ...done! 
[ebuild    U ] net-www/mozilla-1.3-r1 [1.2.1-r5] 
 
*mozilla-1.3-r1 
 
  22 Mar 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3-r1.ebuild : 
  Add Gtk2 patch.  Add default/prefs/xft.js when Xft is enabled.  Some other 
  long overdue cleanups. 
 
*mozilla-1.3 
 
  21 Mar 2003; Jay Kwak <jayskwak@gentoo.org> mozilla-1.3.ebuild : 
  Add XIM input patch for GTK 
 
  18 Mar 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3.ebuild : 
  New version. 
 
  13 Mar 2003; Olivier Reisch <doctomoe@gentoo.org> mozilla-1.2.1-r5.ebuild : 
  Marked ppc stable 
 
*mozilla-1.3_beta 
 
  23 Feb 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3_beta.ebuild : 
  New version. 
 

3.  パッケージの更新

標準的なPortageのアップデート方法は、emerge --updateまたはemerge -uです。

コード表示 3.1: Using emerge -u

# emerge -u xchat

Portage は "safe" unmerge と呼ばれる仕組みを使用します。それは、 単にオリジナルファイルを削除するということです。もしファイルが、 なんらかの方法で上書き、あるいは変更されていたら、ファイルシステム上に残しておきます。 (おそらくは、パッケージのより新しいバージョンをインストールしたのでしょう。) よって、もし xchat の新しいバージョンを merge した後、 古いバージョンをunmerge したなら、xchat の実行ファイルはファイルシステムから削除されません。 よって、それはより新しいタイムスタンプかつ異なる md5sum を持ちます。 いつでも、アプリケーションのいくつかのバージョンが利用可能であることを保証するので、 safe unmerge は実にすばらしいです。もし、最初に unmerge をしなければならなかったとしたら、 新しいバージョンがダウンロード、コンパイル、インストール、 そして emerge されているしばらくの間、xchat は利用できないでしょう。

重要: Portage は現在 "config file protection" と呼ばれる特別な機能を持っています。 この機能の目的は、新しいパッケージのインストールによって既に存在する設定ファイル を壊してしまうことを防ぐことです。デフォルトでは、config file protection は、 /etc と KDE 設定ディレクトリで作動します。今後、もっと追加するかもしれません。 より詳しくは、emerge --help configを入力してください。

4.  ブロックされたパッケージの解決方法

現在のところ、インストールされたパッケージが他のパッケージのインストールをブロックすることが時々起こります。 これはあるパッケージの機能が別のパッケージに移動したとき、又は二つのパッケージに互換性が無いときに起こることがあります。 ブロックしているパッケージは、ブロックされているパッケージがemergeされる前に、取り除かれる必要があります。

コード表示 4.1: ブロックされたパッケージのemerge

 
# emerge -pv libbonobo 
 
These are the packages that I would merge, in order: 
 
Calculating dependencies ...done! 
[blocks B     ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0) 
[ebuild     U ] gnome-base/ORBit2-2.8.1 [2.6.3] -doc +ssl 
[ebuild     U ] gnome-base/libbonobo-2.4.0 [2.2.3] -doc 

上記は、bonobo-activationパッケージがlibbonobo-2.4.0をブロックしている例です。

コード表示 4.2: ブロックしているパッケージをシステムから取り除く

 
# emerge -C bonobo-activation 
# emerge libbonobo 

Removing bonobo-activation from the system will allow libbonobo-2.4.0 to emerge succesfully. システムからbonobo-activationを取り除くと、libbonobo-2.4.0をemergeすることができるようになります。

重要: unmerge(emerge -C)の実行は、たとえ他のパッケージの依存関係が存在していてもパッケージを取り除きますので、システムを壊してしまう可能性があります。

5.  Portageの動作をコントロールする

Portageの動作を変えたい場合には、/etc/make.confを編集します。 このファイルはPortageの動作を変更するために定義する変数(と、変数と値のサンプル)が含まれています。 たとえば、ソースコードのダウンロード方法を変更したい場合には、FETCHCOMMANDを必要に応じて変更します。

/etc/make.confには、定義の仕方を学ぶことができるたくさんのサンプルの変数が含まれています。 また、make.confmanページ(man make.conf)を見たり、もっと奥深くまでPortageを知りたければ、 Portage Manual (日本語訳)を読みましょう。

もし一回限りの変更が必要な場合には、/etc/make.confを2回編集する代わりに環境変数としてセットすることができます。 たとえば、AUTOCLEAN="no" emerge kdeemerge kdeの間だけ、autocleaningを行ないません。

6.  マスクされたパッケージとはなんですか?

多くの人達が、なぜemerge -u worldしたときに新しいパッケージが含まれないのだろうと不思議に思います。 良い例はxfree-4.3.0(執筆時点でのバージョンで)です。 emerge syncした後で、続いてemerge -u worldをしても、最新版としてそれを見ることはないでしょう。 これはなぜでしょうか?

その理由は、そのパッケージが"masked"としてマークされているからです。 そのパッケージは特定の手段を取らない限り、自動的にはインストールされません。 マスクされたパッケージのインストールを可能にする方法の説明として、 Gentoo ForumsにあるMasked Packages FAQ を見てみることをお勧めします。



印刷

更新日 October 9, 2003

この翻訳はすでにメンテナンスされていません。

要約: このガイドは、パッケージを最新に保つ方法とシステムを整備する方法を、簡単に取り上げます。

Daniel Robbins
Chief Architect

Thomas Flavel
Editor

John P. Davis
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

五十嵐 正尚
翻訳

中野 正智
翻訳

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.