
Ubuntu日本語フォーラム

ログインしていません。
質問:
Ubuntu 9.04へsun-java6-binをインストールして使っています。一旦アンインストールして再インストールしたところ、ライセンス同意の確認が出ませんでした。どこかに同意結果が保存されていると思いますが、どうすれば再インストール後も同意確認が出るようになるでしょうか。
背景:
Ubuntuアプリケーションをインストール済みのVMWareのイメージを配布する予定があります。その場合、sun-java6-binは配布を受け取った人ごとに同意を行う必要があると考えています。そのため、アプリのインストールと設定が終わった後にsun-java6-bin, sun-java6-jre, java-commonをアンインストールし、インストール途中のライセンス同意画面のままサスペンドしたいのです。普通にアンインストール、インストールを行ってもライセンス同意確認画面が出てきません。
妙な質問ですがよろしくお願いします。
オフライン
DLJへ同意したかどうかはdebconf上に保存されています。
方法1)
sudo apt-get remove --purge sun-java6-bin
が一つの手です。お望みの挙動になるでしょうか。が、javaパッケージ側で何か設定を施す場合は、この方法だと設定値まで吹き飛ばされてしまうので良くありません。
方法2)
以下のようにすると、
$ sudo debconf-show sun-java6-bin * shared/accepted-sun-dlj-v1-1: true shared/error-sun-dlj-v1-1: * shared/present-sun-dlj-v1-1:
それらしき変数が見えます。
sudo debconf-set-selections <<<'sun-java6-jre shared/accept-sun-dlj-v1-1 note'
とかしておくと、remove後のinstallが期待の挙動になったように見えます。
ちなみにdebconfのdbは/var/cache/debconf/config.datが実体で、実設定値は以下です。
Name: shared/accepted-sun-dlj-v1-1
Template: shared/accepted-sun-dlj-v1-1
Value: true
Owners: sun-java6-bin, sun-java6-jre
Flags: seen
このValueをピンポイントでfalseにしてやる場合でも(内部的にはdebconf-set-selectionsと同じ)、なんとなく期待の挙動になるような気がします。
……ここまで書いて気づきましたが、実は9.04だとOpenJDKという手もあるような気がしてきました。
オフライン
ありがとうございます。方法1で解決しました。
「設定」はjava実行環境の設定ではなく、javaアプリケーションの設定であるため、これで十分です。最初の質問でその点をはっきり勝て居ませんでした。申し訳ありませんでした。
OpenJDKとはGNUのjavaでしょうか。今回走らせるアプリは、sun-java6ではきちんと動くのですが、gnuのjavaでは正常に動作しませんでした。そのため、sun-java6ばかり使っている次第です。
オフライン
suikan による投稿:
OpenJDKとはGNUのjavaでしょうか。今回走らせるアプリは、sun-java6ではきちんと動くのですが、gnuのjavaでは正常に動作しませんでした。そのため、sun-java6ばかり使っている次第です。
GNUのjavaというのがGCJ(GNU Compiler for Java)を意味しているなら、OpenJDKとは別のものです。OpenJDKはsun-java6のオープンソースライセンス版で、"openjdk-6-jre"などといったパッケージとして提供されています。基本的な互換性はsun-java6と同じになるように(主にSunの人間が)メンテナンスしているので、挙動の差も少ないはずです。お考えの用途がEclipse+ARMビルド環境であれば;)、おそらくsun-java6と同じ挙動で、より緩やかなライセンス条件で配布できると思います。
http://openjdk.java.net/が参考になると思います。
オフライン