WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

USEフラグの変更手順

Portage 関連の話題が続いてしまいますが、今日は USE フラグを変更する手順をご紹介しようと思います。

USE フラグはパッケージがサポートする機能を柔軟に設定できる Gentoo Linux 独特のシステムですが、デフォルトの USE フラグを変更してもインストール済みのパッケージは自動では再コンパイルされません。このため、依存関係のあるパッケージをインストールする際に問題が発生することがあります。それらの問題を回避するために、デフォルトの USE フラグを変更した際には、必ず影響のあるパッケージを再コンパイルしておきましょう。

gentoolkit をインストールする

以降の作業では gentoolkit パッケージに含まれるコマンドが必要になりますので、もしまだインストールしていないときは、最初にインストールしてしまいましょう。以下のコマンドで OK です。

emerge gentoolkit

デフォルトのUSEフラグを変更する

まずは、デフォルトの USE フラグの変更方法です。 Portage の環境設定の記事でご紹介しましたが、デフォルトの USE フラグは "/etc/make.conf" に記述されています。テキストファイルですので、 vim などで読み込み、"USE=〜" という行を編集すれば OK です。

影響のあるパッケージを再コンパイルする

USE フラグを変更したら、影響のあるパッケージを再コンパイルします。以前はインストール済みパッケージをすべて更新するしかなかったのですが、最近は以下のコマンドで最低限のパッケージだけを更新できます。

emerge --update --deep --newuse world

上記のコマンドも、--pretend オプションを付ければ実行前に更新するパッケージのリストを確認できます。間違いを防ぐためにも、事前の確認をお勧めします。

不要なパッケージを削除する

USE フラグを変更すると、いままで依存関係のためにインストールされていたパッケージが不要になることがあります。必要ならそれらのパッケージを削除できます。ただし、この作業は必要なパッケージまで削除してしまう可能性も捨て切れません。もし安定動作を優先させたいなら、不要なパッケージでも残しておくという選択もありだと思います。

※現在、下記手順は実行しないほうが良いようです。どうしても不要なパッケージを削除したいときは、 "emerge --pretend --depclean" で目安を付けて、本当に削除しても問題ないと判断できるものだけ手動で "emerge --unmerge" しましょう。

では、まずは以下のコマンドで削除するパッケージを確認しましょう。

emerge --pretend --depclean

リストされたパッケージを削除しても問題ないと判断したら、以下のコマンドで削除を実行します。

emerge --depclean

削除が終了したら、revdep-rebuild コマンドで動的リンクの情報を再構築します。このコマンドは、先ほどインストールした gentoolkit パッケージに含まれています。

revdep-rebuild

以上で、 USE フラグの変更が完了です。けっこう大仕事ですね(^^;。 USE フラグの設定は計画的に。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles