GNU/Linux >> Linux の 問題 >  >> Linux

EPEL から同じマシンに 2 つの異なるバージョンの Java をインストールするにはどうすればよいですか?

解決策 1:

あなたはそうしない。修正された最新のパッケージにアップグレードしてください。

java-latest-openjdk 14.0.2.12-1 14.0.1.7-2 を置き換えます . EPEL ミラーは、通常のポリシーと同様に古いバージョンを保持しません。

アップストリームのリリース ノートによると、14 のセキュリティ パッチ バージョンは 14.0.2+12 です。 .通常のタイム ゾーン データと x509 証明書の変更、およびバグ修正に注意してください。このバージョンを固定する必要があるかどうかを考えてください。ドキュメントは、これがマイナー メンテナンス リリースであることを示しています。

以前のバージョンを保持する必要がある場合は、パッケージの取得とインストールという 2 つの問題を解決する必要があります。古いバージョンはミラー上にありません。独自のプライベート ミラーまたはキャッシング プロキシを設定して、古いバージョンをアーカイブすることを検討してください。また、これら 2 つのバージョンを同時にインストールすることはできません。コンテナー、仮想マシン、Java ランタイムを選択できるランタイム マネージャー ユーティリティなど、2 つの並列環境を持つ方法を検討してください。

解決策 2:

簡単な答え:SDKMAN などの Java ランタイム マネージャーを使用してください。またはjEnv

長い回答:デフォルトでは、パッケージ マネージャーは、システム内のパッケージの最新バージョンを最新の状態に維持しようとします。これが、さまざまな言語 (python の場合は pyenv または conda、node/js の場合は nvm など) に対して、上記のような代替パッケージ マネージャーを見つけるのが一般的である理由です。

これは EPEL 用であると述べているため、インターネット アクセスが制限されている可能性があります。これは問題になる可能性があります。一般に、これらの代替パッケージ マネージャーはユーザー セッションにインストールされ、制御される環境変数は現在のユーザーにのみ影響します。これは、正確に何に取り組んでいるかによって、長所または短所になる可能性があります。

これ以上の情報がなければ、上記の既存のツールを使用するのが良いと思います (新しいツールがあるかもしれません)。必要に応じて情報を追加してください。幸運を祈ります!

解決策 3:

これは、Docker の主な使用例の 1 つであり、仮想化のオーバーヘッドや複雑さなしに、コンテナが独自の隔離された環境にさまざまなサポート ライブラリやさまざまなアプリケーション バージョンを含めることができます。

最も単純な Dockerfile では、CentOS または RHEL の基本イメージを入手し、リポジトリを追加して、必要なパッケージをインストールできます。

ここでのユースケースが何であるか、およびコンテナを介して目標を表現できるかどうかが重要です。ほとんどの場合、可能です。以下は dockerfile の例です:

FROM centos

RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64

ENV JAVA_HOME /etc/alternatives/jre
WORKDIR /app
EXPOSE 8080
CMD [run.sh]

最後のブロックはほぼ完全に構成されていますが、有効です。アプリケーションをマイクロサービスとして表現できる場合、この Docker ベースのソリューションは非常に理にかなっています。

それ以外の場合は、IP 全体 (VM のように) を公開できることを除いて、LXD コンテナーを使用して同様の結果を達成できます。 VM を使用することもできます。どちらも、アプリケーションごとに 1 つの IP/ポートの組み合わせを公開する Docker ベースのソリューションよりも複雑です。


Linux
  1. Linuxコマンドラインからソフトウェアをインストールする方法

  2. 公式MSリポジトリからLinuxにMicrosoftTeamsをインストールする方法

  3. Ubuntu から Java をアンインストールする方法

  1. 同じインストールで2つの異なるバージョンのWineを使用するにはどうすればよいですか?

  2. 同じマシンでUbuntu10.04からUbuntu11.10に簡単にアップグレードするにはどうすればよいですか?

  3. RockyLinux8にJavaバージョンをインストールして管理する方法

  1. install -c は cp とどう違うのですか

  2. OS に応じて同じマシンに異なる静的 IP アドレスを割り当てる方法は?

  3. Linux マシンで man7.org から man ページの完全なセットを取得するにはどうすればよいですか?