WebOS Goodies

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

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

インストール済みパッケージのアップデート

実はインストールしてからパッケージの更新をほとんどやっていなかったので、今日はインストール済みパッケージを最新版に更新する方法について書こうと思います。すでに GentooLinux を使っている人にとっては当たり前の話ですが、初めて使う人はけっこう戸惑うところかなと思います。

パッケージの更新は、だいたい以下の手順で行います。

  1. Portage ツリーの更新
  2. 更新されるパッケージの確認
  3. パッケージの更新
  4. 設定ファイルの更新

以下で、それぞれの項目について、詳しく見ていこうと思います。

Portage ツリーの更新

GentooLinux のパッケージは Portage というシステムによって管理されています。Portage"/usr/portage" 以下のファイル群からなるデータベースによって構成されており、それを Portage ツリーと呼びます。まずはこの Portage ツリーを最新のものに更新しなければなりません。といっても、やり方は簡単で、以下のコマンドを実行するだけです。

emerge --sync

量が膨大なのでけっこう時間がかかりますが、全自動ですのでコマンドを実行したら放っておいて大丈夫です。

更新されるパッケージの確認

Portage ツリーが最新になったら、まずはどのパッケージが更新されるかを確認してみましょう。以下のコマンドでできます。

emerge --pretend --update world

実行すると、以下のようなメッセージが表示されるはずです。

These are the packages that I would merge, in order:

Calculating world dependencies
!!! Problems have been detected with your world file
!!! Please run emaint --check world
                                                                                ...done!

[ebuild     U ] sys-apps/man-pages-2.20 [2.17]
[ebuild     U ] sys-libs/cracklib-2.8.5 [2.8.3-r1]
[ebuild     U ] sys-fs/udev-079-r1 [070-r1]
[ebuild     U ] sys-apps/portage-2.0.54 [2.0.53]
*** Portage will stop merging at this point and reload itself,
    recalculate dependencies, and complete the merge.
    You may avoid the remerging of packages by updating portage on its own.
[ebuild     U ] sys-apps/sysvinit-2.86-r3 [2.86]
[ebuild     U ] sys-apps/baselayout-1.11.14-r2 [1.11.13-r1]
[ebuild     U ] sys-devel/gnuconfig-20051223 [20051113]
[ebuild     U ] sys-devel/libtool-1.5.22 [1.5.20]
[ebuild     U ] sys-process/psmisc-21.9 [21.6]
[ebuild     U ] app-editors/nano-1.3.9 [1.3.7]
[ebuild     U ] dev-libs/libol-0.3.17 [0.3.16]
[ebuild     U ] app-admin/syslog-ng-1.6.9 [1.6.8-r1]
[ebuild  NS   ] sys-kernel/gentoo-sources-2.6.15-r1
[ebuild     U ] sys-devel/libperl-5.8.7 [5.8.6-r1]
[ebuild     U ] dev-lang/perl-5.8.7-r3 [5.8.6-r8]

しばらく更新していなかっただけに、なんかいろいろと表示されてますね(^^ヾ。基本的に、"[ebuild U ]" という行が更新されるパッケージを表しています。"[ebuild NS ]" というのは、インストール済みパッケージの別スロットに新しいパッケージが追加されたことを示しています。

Portage では、パッケージの複数バージョンを同時に保持できるようにするために、「スロット」という概念が実装されています。この表示があった場合は、以下にご紹介する単純な手順だけでは新バージョンが有効にならず、なんらかの明示的な作業が必要になります。どのような作業が必要かはコンパイル終了時のメッセージで表示されることが多いです。主なものは今後の記事で紹介していく予定ですので、GentooLinux のページをチェックしてください(^^)。ま、今回は気にせずいきましょう。

そのほかに、ワーニングがいくつか表示されています。それについては、以下で触れていきます。

VMwareTools に関する警告

!!! Problems have been detected with your world file
!!! Please run emaint --check world

上記の警告は、VMwareTools のパッケージに起因しているようです。GentooLinuxVMwareTools パッケージはまだ unstable な状態で、通常はインストールできないようになっています。VMwareTools のインストールのときは、ACCEPT_KEYWORDS を設定することでこの制限を回避していたのですが、今回はそれを指定していないためにこの警告が出ているのだと思います。

これに関しては、いまのところ無視するしかないように思います。

Portage の更新

*** Portage will stop merging at this point and reload itself,
    recalculate dependencies, and complete the merge.
    You may avoid the remerging of packages by updating portage on its own.

上記の警告は、Portage 自体がアップデートされているので、この時点で更新処理をいったん中断し、依存関係を再計算した後に再マージする、と言っています。このまま普通に更新しても問題はありませんが、念のため手動で Portage を更新してしまいましょう。以下のコマンドでできます。

emerge --update portage

Portage を更新した後に再度更新内容を確認すれば、上記の警告は表示されないはずです。

パッケージの更新

更新内容に問題がなければ、更新処理を実行しましょう。以下のコマンドです。

emerge --update world

後は完全に自動処理で、ソースのコンパイルからインストールまでが行われます。ただ、パッケージの更新の最後に、以下のようなメッセージが表示されることがあります。

 * GNU info directory index is up-to-date.
 * IMPORTANT: 28 config files in /etc need updating.
 * Type emerge --help config to learn how to update config files.

GentooLinux では、ソフトウェアの誤動作を未然に防ぐため、設定ファイルの更新は自動では行いません。その代わりに、新しい設定ファイルが別のファイル名("/etc/.cfg0000_profile" のような)で保存されるので、etc-update というツールを使って確認しながらマージしていきます。

今日は時間がなくなってしまいましたので、設定ファイルの更新に関しては明日にでも続きを書きます。

関連記事

この記事にコメントする

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