emerge

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Emerge and the translation is 100% complete.
Other languages:

emergePortage とのコマンドラインインターフェースであり、多くのユーザが Portage とやりとりするための手段です。Gentoo で最も重要なコマンドのひとつです。

emerge は、Gentoo Linux 上でソフトウェアパッケージのインストール、更新、および保守全般を行うために使用されます。

ヒント
emerge コマンドには多くの可能なオプションがあります。広範なドキュメントと、すべてのオプションの完全な一覧については、man emerge を参照してください。
関連
emerge コマンドについてのよくある質問の一部は、FAQPortage FAQ で回答されています。Portage の記事も参照してください。
関連
すべてのオプションとユースケースの正規のドキュメンテーションについては、emerge man ページを参照してください。

使い方

呼び出し

emerge は、発生することになる変更についてリッチな出力を提供し、個別のパッケージまたはシステムについての情報と警告を提供します。--ask--pretend、そして --verbose オプションは、Portage により情報を表示させるために有用です - emerge コマンドはデフォルトでは要求された操作をすぐに実行しようとします。

emerge を --help オプション付きで実行すると、コマンドラインオプションについての情報を提供します:

user $emerge --help
emerge: command-line interface to the Portage system
Usage:
   emerge [ options ] [ action ] [ ebuild | tbz2 | file | @set | atom ] [ ... ]
   emerge [ options ] [ action ] < @system | @world >
   emerge < --sync | --metadata | --info >
   emerge --resume [ --pretend | --ask | --skipfirst ]
   emerge --help
Options: -[abBcCdDefgGhjkKlnNoOpPqrsStuUvVwW]
          [ --color < y | n >            ] [ --columns    ]
          [ --complete-graph             ] [ --deep       ]
          [ --jobs JOBS ] [ --keep-going ] [ --load-average LOAD            ]
          [ --newrepo   ] [ --newuse     ] [ --noconfmem  ] [ --nospinner   ]
          [ --oneshot   ] [ --onlydeps   ] [ --quiet-build [ y | n ]        ]
          [ --reinstall changed-use      ] [ --with-bdeps < y | n >         ]
Actions:  [ --depclean | --list-sets | --search | --sync | --version        ]
 
 
For more help consult the man page.

以下は "package" というパッケージをインストールする場合の emerge の実行例です。オプション (-atv) は --ask--tree、そして --verbose の短い形です。これらは emerge に対して、処理を続行する前に確認させ、インストールされるパッケージの依存関係ツリーを表示させ、詳細な出力を有効化させます:

# emerge -atv package

These are the packages that would be merged, in reverse order:

Calculating dependencies... done! [ebuild U ] category/package-3.0-r2 [2.0] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB [ebuild UD ] category/package-2.0 [3.0] 777 kB [ebuild R ] category/package-1.0 777 kB [ebuild N ] category/package-0.5 777 kB

Total: 4 packages (1 new, 1 reinstall, 1 upgrade, 1 downgrade), Size of downloads: 3108 kB

Would you like to merge these packages? [Yes/No]

U シンボルはアップグレードされるパッケージを示し、D はダウングレードされるパッケージで、R は再 emerge され、N は新しいパッケージです。角括弧の中は、すでにインストールされているパッケージのバージョンです。world ファイルにあるパッケージは太字で示されます。これらはユーザによってインストールされたパッケージで、他はその依存か、system 集合からのパッケージでしょう。

関連
Portage の出力の読み方の完全な説明については、emerge man ページの OUTPUT セクションと --pretend オプションを参照してください。

Portage の文脈では、「パッケージ」という用語は「アトム」("atom") と呼ばれることもあります。これらの用語は相互に言い換えが可能です。version specifier を参照してください。

パッケージをインストールする

--ask--verbose オプションを付けて、net-proxy/tinyproxy パッケージをインストールしてください:

root #emerge --ask --verbose net-proxy/tinyproxy

どのパッケージの、どのバージョンが、どのスロットとして、どの ebuild リポジトリからインストールされるかが version specifier を使って示されます。

ヒント
--ask (-a) オプションは非常に有用です。実際の操作を始める前に、emerge が行うことを確認することができます。--verbose (-v) オプションは、Portage が行うことについてより詳細な情報を表示し、これも便利に使えることが多いです。望むなら、オプションはデフォルトとして設定することもできます。デフォルトのオプションは、例えば --ask=n のようにして、コマンドライン上で上書きすることができます。
警告
--ask オプションを渡さなかった場合、要求された操作は確認されずに実行されます。--pretend オプションを使うこともできます。
メモ
依存パッケージなど、ものによってはこの方法でインストールすべきでないものもあります。依存関係を world ファイルに追加しないの節を参照してください。

パッケージの機能はインストール時に USE フラグによって規定され、これはソフトウェアの利用目的に応じて、設定したり設定を解除したりすることができます。

パッケージを検索する

メモ
emerge 組み込みの検索機能は他のツールと比べて、限られた結果しか表示しないかもしれません。Latest version availablemake.conf (または環境) の ACCEPT_KEYWORDS によって制約されます。さらに、Latest version availableLatest installed version はスロットを考慮しないため、スロットによって分けられた複数のバージョンを表示しません。eixeshowkw などのツールが複数のバージョンを表示できるのに対して、このことは混乱を招くかもしれません。

名前に proxy を含むパッケージを検索します:

user $emerge --search proxy

名前または説明 (description) に proxy を含むパッケージを検索します:

user $emerge --searchdesc proxy

正規表現を利用してパッケージを検索します:

user $emerge -s '%^python$'

カテゴリ内のすべてのパッケージを一覧表示します:

user $emerge -s '@net-ftp'

packages.gentoo.org で、オンラインでリポジトリ内を検索することもできます。

関連
より高度なパッケージの検索方法については、eixequery、そして pgo も参照してください。

パッケージを削除 (アンインストール) する

依存関係を考慮する --depclean (-c) オプションを使用して、net-proxy/tinyproxy パッケージを削除します:

root #emerge --ask --verbose --depclean net-proxy/tinyproxy

これは、現在インストールされているパッケージの依存として必要とされていないパッケージのみを削除するはずです。

パッケージをアンインストールするのに --depclean を使用する代わりに、次の節で説明する通り、emerge --deselect (または -W オプション) を使用して孤立したパッケージを整理することもできます。

ヒント
--depclean の短縮形である小文字の -c スイッチ (こちらは安全です) と、システムに損傷を加えるリスクがあり、絶対に必要な場合にのみ使用すべき大文字の -C スイッチを混同しないでください (下の警告を参照してください)。
警告
(その特定の挙動が特別に必要と理解している場合を除いて) --unmerge (-C) オプションを使用しないでください。このオプションは、システムが機能するのに必要となる重要なパッケージを、警告無しで削除します。

孤立したパッケージを整理する

関連
emerge --depclean を使って、潜在的に使用されていないパッケージを削除する方法についての情報は、remove orphaned packages を参照してください。Portage FAQ もお読みください。

パッケージを更新する

パッケージを更新する方法については Gentoo のアップグレードを参照してください。

システム情報を取得する

emerge はトラブルシューティングに有用なシステム情報を出力することができます。この情報はサポートを求めるときや、バグ報告を提出するときに、投稿することがよく求められます。

user $emerge --info

--verbose フラグを使用することで、さらなる情報が出力されるかもしれません。

ヒント

distfile を検証して (再) ダウンロードする

現在インストールされているすべてのパッケージについて distfile の整合性を再検証し、以前に削除された、または破損した distfile を再ダウンロードするには、次を実行してください:

root #emerge --ask --fetchonly --emptytree @world

依存関係を world ファイルに追加しない

依存対象を再インストールする必要がある場合は、--oneshot オプションを使用してください。emerge package コマンドで依存対象をインストールすると、依存対象を world ファイルに追加してしまうため、それにより問題を引き起こす場合があります。

ソフトウェアをソースからコンパイルするために、その依存対象を Portage を使ってインストールすることは、推奨されません。ebuild を書くほうがより好ましいです。

関連
さらなる情報については、User:Sam/Portage help/Maintaining a Gentoo_system を参照してください。

emerge を再開する

複数のパッケージの emerge が (Ctrl+C やクラッシュなどで) 割り込まれた場合、--resume オプションを付けることで、失敗したパッケージから emerge を再開することができます。--keep-going--skipfirst のオプションにも興味を持たれるかもしれません。詳細については emerge の man ページを参照してください。

環境変数を設定する

呼び出しの挙動に影響を加えるために、emerge コマンドの前に環境変数を付加することができます。例えば、app-editors/emacs を svg USE フラグを有効化してマージしつつ、この USE フラグ設定を永続化させないようにするには:

root #USE='svg' emerge app-editors/emacs

あるいは、ebuild 内で econf 関数を使用するパッケージに追加の設定オプションを渡すには:

root #EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs

トラブルシューティング

関連
Portage の問題に関する話題については、User:Sam/Portage help も参照してください。

パッケージの emerge が 'unpack' ステージで失敗する

パッケージを emerge するときに、次のメッセージが表示されることがあります:

 * Error messages for package dev-libs/libinput-1.16.0:
 * The ebuild phase 'unpack' has exited unexpectedly. This type of behavior
 * is known to be triggered by things such as failed variable assignments
 * (bug #190128) or bad substitution errors (bug #200313). Normally, before
 * exiting, bash should have displayed an error message above. If bash did
 * not produce an error message above, it's possible that the ebuild has
 * called `exit` when it should have called `die` instead. This behavior
 * may also be triggered by a corrupt bash binary or a hardware problem
 * such as memory or cpu malfunction. If the problem is not reproducible or
 * it appears to occur randomly, then it is likely to be triggered by a
 * hardware problem. If you suspect a hardware problem then you should try
 * some basic hardware diagnostics such as memtest. Please do not report
 * this as a bug unless it is consistently reproducible and you are sure
 * that your bash binary and hardware are functioning properly.

この問題は、上の出力に列挙されている通りの理由で起こることもありますが、Portage が ebuild のソースファイルを展開するパスを含むディスクの容量不足によって発生することも、よくあります。この場所は PORTAGE_TMPDIR 変数を介して設定され、Portage に問い合わせることですぐに知ることができます:

user $portageq envvar PORTAGE_TMPDIR
/var/tmp

PORTAGE_TMPDIR がマウントされているパーティション (おそらくルート (/) パーティションでしょう) で利用できるディスク容量を確認するためには、df コマンドを使用できます。ディスク容量を空ける方法の詳細については、Freeing disk space を参照してください。

関連項目