GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstaluji 2 různé verze javy na stejný stroj od EPEL

Řešení 1:

Ty ne. Upgradujte na novější balíček, který obsahuje opravy.

java-latest-openjdk 14.0.2.12-1 nahrazuje 14.0.1.7-2 . Zrcadla EPEL nenesou starou verzi, jak je jejich obvyklou zásadou.

Upstream poznámky k vydání říkají, že bezpečnostní opravená verze 14 je 14.0.2+12 . Všimněte si obvyklých údajů o časovém pásmu a změn certifikátů x509 plus opravy chyb. Přemýšlejte o tom, zda tuto verzi opravdu potřebujete připnout. Dokumentace uvádí, že se jedná o vydání menší údržby, které máte v úmyslu provést.

Pokud zjistíte, že je třeba zachovat předchozí verzi, je třeba vyřešit dva problémy:získání balíčku a jeho instalace. Stará verze již není na zrcadlech, zvažte nastavení vlastního soukromého zrcadla nebo caching proxy pro archivaci starých verzí. A tyto dvě verze nelze nainstalovat paralelně. Prozkoumejte způsob, jak mít dvě paralelní prostředí, ať už kontejnery, virtuální stroje nebo obslužné programy správce runtime, které vám konkrétně umožňují vybrat běhové prostředí Java.

Řešení 2:

Krátká odpověď:Použijte správce Java runtime, jako je SDKMAN! nebo jEnv

Dlouhá odpověď:Ve výchozím nastavení se správci balíčků snaží pomáhat udržovat aktuální verzi balíčků ve vašem systému. To je důvod, proč je běžné najít alternativní správce balíčků, jako je výše uvedený, pro různé jazyky (pyenv nebo conda pro python, nvm pro node/js atd.).

Uvádíte, že je to pro EPEL, což může znamenat, že máte omezený přístup k internetu. To může být problém. Obecně platí, že tyto alt správci balíčků jsou nainstalovány v uživatelské relaci a řízené proměnné prostředí ovlivňují pouze aktuálního uživatele. To může být výhoda nebo nevýhoda v závislosti na tom, na čem přesně pracujete.

Bez dalších informací si myslím, že použití stávajících nástrojů uvedených výše (mimo jiné mohou být i novější) by mohlo být dobrým místem, kde začít. V případě potřeby můžete přidat další informace a hodně štěstí!

Řešení 3:

Toto je jeden z primárních případů použití pro Docker, ve kterém může kontejner obsahovat různé podpůrné knihovny a/nebo různé verze aplikací v jejich vlastních izolovaných prostředích bez režie a složitosti virtualizace.

V nejjednodušším Dockerfile by bylo možné vytvořit zdroj základního obrazu CentOS nebo RHEL, přidat úložiště a nainstalovat balíčky, které chcete.

Záleží na tom, jaký je zde případ použití a zda lze cíl vyjádřit pomocí kontejnerů. Ve většině případů může být. Zde je příklad 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]

Tento poslední blok je téměř celý vymyšlený, ale je platný. Pokud můžete svou aplikaci vyjádřit jako mikroslužbu, toto řešení založené na dockeru může mít velký smysl.

Jinak můžete dosáhnout podobných výsledků s kontejnerem LXD s tou výjimkou, že můžete vystavit celou IP (podobně jako virtuální počítač). Můžete také použít VM. Oba jsou složitější než řešení založené na dockeru, které odhaluje jedinou kombinaci IP/port na aplikaci.


Linux
  1. Jak nainstalovat nano editor ze zdrojového kódu

  2. Jak odinstalovat Javu z Ubuntu

  3. Jak získat kompletní sadu manuálových stránek z man7.org na počítači se systémem Linux?

  1. Jak používat dvě různé verze Wine na stejné instalaci?

  2. Jak bez námahy upgradovat z Ubuntu 10.04 na Ubuntu 11.10 na stejném počítači?

  3. Jak nainstalovat a spravovat verze Java na Rocky Linux 8

  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. Jak nainstalovat Microsoft Teams na Linux z oficiálního úložiště MS

  3. Jak se install -c liší od cp