Oracle Javaをインストールしました。 OpenJDKを削除したいのですが、そうしようとするときにapt
別のバージョンのJavaをインストールしたいと思います。
apt
これらのOpenJDKパッケージを削除できるようにサードパーティのJavaがインストールされていることを知るように設定するにはどうすればよいですか?
答え1
ダミーパッケージの作成使用同等。簡単に言うと:
仮想パッケージの制御ファイルを作成します。プログラムは
equiv-controls
テンプレートを生成します。ファイル名を指定してください。equivs-control oracle-jre.control
制御ファイルを編集します。少なくともこの行を(未使用のSun / Oracle Javaパッケージの名前)
Package:
に設定してください。また、意味のある設定セクションをsun-java6-jre
作成する必要があります。パッケージと他のバージョンを宣言します(他のプログラムが依存する仮想パッケージで提供されているものとそのプログラムが必要とするものを確認して見つけることができます)。ファイルは次のようになります。Description:
java
Provides: java-6-runtime
openjdk-6-jre
Section: java Priority: optional Standards-version: 3.9.2 Package: sun-6-jre Provides: java6-runtime, java-runtime Description: dummy package when Oracle Java is installed
作成した制御ファイルを使用してDebianパッケージを作成します。このパッケージは依存関係のみであり、ファイルはインストールされません。
equivs-build oracle-jre.control
生成されたdebパッケージをインストールします。
sudo dpkg -i sun-6-jre_1.0_all.deb
答え2
私はこれを行う方法がないと思います。代わりに、.deb
Javaパッケージを提供するPPAリポジトリを使用できます。このスクリプト一度試してみると、Javaインストール用の.debパッケージが作成されます。
このスクリプトはOAB-Java、具体的にoab-java.sh
。
はい
スクリプトのダウンロード:
cd ~/
wget https://github.com/flexiondotorg/oab-java6/raw/0.2.8/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh
スクリプトは次のスイッチを使用します。
-7
:sun-java6の代わりにoracle-java7パッケージをビルドします。-c
:既存のパッケージ/var/local/oab/deb
とソースを削除します/var/local/oab/src
。-k
:キーを生成する代わりに、指定された既存のキーを使用します。-s
:パッケージがすでに存在する場合は、ビルドをスキップします。-t
: アップストリーム Debian パッケージングスクリプトで使用する Java バージョンタグを指定します。-h
:役に立つ
Oracle 6ファイルを準備してインストールするには、次のようにします.deb
。
$ sudo ./oab-java.sh
$ sudo apt-get install sun-java6-jre
Oracle 7ファイルを準備してインストールするには、次のようにします.deb
。
$ sudo ./oab-java.sh -7
$ sudo apt-get install oracle-java7-jre
答え3
@Gillesが提供した上記の答えはしばらく私にとって非常に効果的でした。ただし、Java 8 および最新バージョンの Ubuntu では動作しません。以下はoracle-jre.control
現在私が使用しているファイルです。
Section: java
Priority: optional
Standards-version: 3.9.2
Package: sun-8-jre
Provides: default-jre, openjdk-8-jre, openjfx
Description: Dummy package when Oracle Java is installed
答え4
apt-markを使用してパッケージを保存できます。
キャッチ:
sudo apt-mark hold package_name
保留をキャンセルするには:
sudo apt-mark unhold package_name
これにより、適切に触れるのを防ぐことができます。