この記事は会員限定です。会員登録すると全てご覧いただけます。
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.