portupgrade での置き換えの動作2008年04月18日 19時13分19秒

portupgrade で -o を付けると category/name からなる ports の名称が異なっているパッケージをあたかも同じ物のようにして更新できる。主にパッケージの名称が変更になった時に使われる。JDK の数を減らそうとして、今回の現象に遭遇した。

portupgrade は元となるパッケージが BROKEN となっていると更新できない。今回は jdk-1.4 が古くなりビルドも出来ないので、jdk-1.6 に置き換えようとした。

まずは、単純な削除を試みた。


# pkg_delete /var/db/pkg/jdk-1.4.2p8_5
pkg_delete: package 'jdk-1.4.2p8_5' is required by these other packages
and may not be deinstalled:
jakarta-tomcat-5.0.30
# pkg_delete /var/db/pkg/jdk-1.5.0.13p7_4,1
pkg_delete: package 'jdk-1.5.0.13p7_4,1' is required by these other packages
and may not be deinstalled:
apache-ant-1.7.0_1
eclipse-3.2.2_1
j2sdkee-1.3.1_5
jaf-1.1_1
jakarta-struts-1.2.4_1
jalbum-7.3.1
javamail-1.4_1
netbeans-6.0
springframework-2.5
tomcat-5.5.25
# pkgdb -uFf

結構な数の ports が依存しているので、単純に削除は出来ない。そこで、-o を用いての置換を試みた。

# portupgrade -o java/jdk16 -f /var/db/pkg/jdk-1.4.2p8_5
** No such installed package: /var/db/pkg/jdk-1.4.2p8_5
# grep BROKEN /usr/ports/java/jdk14/Makefile
BROKEN=         Does not compile with GCC 4.2

そのようなパッケージは無いとの事だ。現実には、pkg_delete で消せないと言われている。調べたら、BROKEN が原因だった。一時的に BROKEN を外すと jdk-1.6 に置き換えられる。1.4 が BROKEN でも実際にインストールするのは 1.6 なので、何ら問題も無い。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/04/18/3182694/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。