Tips記事
» 2002年05月15日 00時00分 UPDATE

RPMパッケージのアップデートで「エラー: 依存性の欠如:」と表示されてしまう

[木田佳克,ITmedia]

 RPMパッケージを使って特定のソフトをアップデートする際,場合によっては次のようなエラーが表示されることがある。この問題を解決するには,ここで紹介するコツを把握しておけばよい。

 すべての手順例は,Red Hat Linux 7.2環境でRed Hat Linux 7.3のRPMパッケージにアップデートしているものだ。

# rpm -Uvh ntsysv-1.3.5-3.i386.rpm
エラー: 依存性の欠如:
    chkconfig = 1.3.5は ntsysv-1.3.5-3 に必要とされています

# rpm -Uvh chkconfig-1.3.5-3.i386.rpm ntsysv-1.3.5-3.i386.rpm
Preparing... ########################################### [100%]
1:chkconfig ########################################### [ 50%]
2:ntsysv ########################################### [100%]
#

 上記の指定例は,ntsysv(サービスコントロールツール)のアップデートである。ここで意味するものは,「ntsysv-1.3.5-3」のアップデートには「chkconfig-1.3.5」が必要になるということだ。このため上記のように「chkconfig」のパッケージも指定することで依存エラーを解決することができる。

 次に,さらに複雑なエラーの例も挙げておこう。

# rpm -Uvh gcc-*
エラー: 依存性の欠如:
  binutils >= 2.11.93.0.2-6は gcc-2.96-110 に必要とされています
  cpp = 2.96-110は gcc-2.96-110 に必要とされています
  cpp = 2.96-110は gcc-c++-2.96-110 に必要とされています
  libgcj >= 2.96は gcc-java-2.96-110 に必要とされています
  libgcj-devel >= 2.96は gcc-java-2.96-110 に必要とされています
#

 上記の例は,gcc(GNU Cコンパイラ)をワイルドカード(*)で指定し,複数の同類パッケージをアップデートしようとしているものだ。ここでは5つの依存性エラーが表示されていることが分かる。これらを解決するには,上から順番に依存しているパッケージを解決していけばよい。

# rpm -Uvh binutils-2.11.93.0.2-11.i386.rpm
Preparing...  ################################## [100%]
  1:binutils ################################## [100%]

# rpm -Uvh cpp-2.96-110.i386.rpm
エラー: 依存性の欠如:
  cpp = 2.96-98は gcc-2.96-98 に必要とされています
  cpp = 2.96-98は gcc-c++-2.96-98 に必要とされています
#

 上記の指定を見ると「binutils」は問題なくアップデートできたが,「cpp」は「gcc」と密接に関連付いていることが分かる。そのため「cpp」の依存エラーをいったん保留して「libgcj」を先に解決すればよい。

 試しに次のように指定したところ,依存エラーは「libgcj」だけになっていることが分かる。

# rpm -Uvh cpp-2.96-110.i386.rpm gcc-*
エラー: 依存性の欠如:
 libgcj >= 2.96は gcc-java-2.96-110 に必要とされています
 libgcj-devel >= 2.96は gcc-java-2.96-110 に必要とされています
#

 「libgcj」のアップデート後であれば,「cpp」と共に「gcc」を指定すればすべての依存エラーが解消され無事にアップデートが完了する。

# rpm -Uvh libgcj-*
Preparing...  ############################## [100%]
 1:libgcj  ############################## [ 50%]
 2:libgcj-devel ########################## [100%]

# rpm -Uvh cpp-2.96-110.i386.rpm gcc-*
Preparing...  ############################## [100%]
 1:cpp   ############################### [ 14%]
 2:gcc   ############################### [ 28%]
 3:gcc-c++ ############################### [ 42%]
 4:gcc-chill ############################# [ 57%]
 5:gcc-g77 ############################### [ 71%]
 6:gcc-java ############################## [ 85%]
 7:gcc-objc ############################## [100%]
#

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ