2014年12月7日日曜日

jreのアップデート時にエラー

jreをアップデートしようとすると、java-runtime-commonをインストールしようとして、java-runtime-commonのインストール時にエラーが発生した。
...
error: failed to commit transaction (conflicting files)
java-runtime-common: /etc/profile.d/jre.csh exists in filesystem
java-runtime-common: /etc/profile.d/jre.sh exists in filesystem
...

というエラーが出てjava-runtime-commonがインストールできない。/etc/profile/jre.shをみると、export PATH=${PATH}:でパスを通している。jreのパッケージのページのコメントを見てみると、削除して問題ないとの事だった。
The package update pulled java-common, which conflicted with existing /etc/profile.d/jre.{,c}sh. Removing the files made it work.


/etc/profile.d/jre.{,c}shを削除する。
# rm /etc/profile.d/jre.{,c}sh

java-runtime-commonをインストールする。もともとjava-commonが入っている環境では、両者がコンフリクトするので、Arch Linuxの公式ページの手順を見てインストールすること。
# pacman -S java-runtime-common
これで、java-runtime-commonはインストールできた。この時点で、 export PATH=${PATH}:/usr/lib/jvm/default/binと書かれた/etc/profile.d/jre.{,c}shが生成した。とりあえず、気にせずjreをyaourtからアップデートする。
$ yaourt -Syua
問題なくアップデートできた。ただし、/etc/profile.d/jre.{,c}shは/etc/profile.d/jre.{,c}sh.pacsaveとして保存された。再起動などしてもjavaは問題なく動いてるっぽいので、jre.shファイルはいじらないでおく。


参考:
[1]jre

0 件のコメント:

コメントを投稿