Chciałbym zaktualizować mój główny system do 16.04, ale pracuję nad projektami, które wymagają OpenJDK 7.
Najwyraźniej nie jest dostępny z trywialnego apt-get install openjdk-7-jdk
. W repozytorium wymieniono tylko wersje 8 i 9.
Czy ktoś może wskazać mi instrukcje dotyczące jego instalacji?
Odpowiedzi:
AKTUALIZACJA: RÓWNIEŻ TO JEST NAJBARDZIEJ GŁOSOWANA ODPOWIEDŹ JEST PRAWDOPODOBNIE NIE TYLKO, KTÓRĄ CHCESZ UŻYWAĆ W 2018 R. ZE WZGLĘDU NA BRAK AKTUALIZACJI BEZPIECZEŃSTWA NINIEJSZYCH PPA.
Znalazłem następujące instrukcje, które działały dla mnie:
Definiuje to „PPA dla przesyłania OpenJDK (ograniczone)” jako dodatkowe repozytorium pakietu, aktualizuje informacje i instaluje pakiet z jego zależnościami (z tego repozytorium).
źródło
sudo update-java-alternatives
, aby ustawić domyślnie openjdk-7.Edytuj 22-lip-2019 : Ta odpowiedź obecnie nie działa. Poniższe pakiety JDK nie są już dostępne w Debian Experimental. W każdym razie pozostawali w tyle za pakietami Ubuntu Trusty, które zawierały nowsze aktualizacje zabezpieczeń. Proszę odnieść się do innych odpowiedzi, dopóki nie da się tego rozwiązać (przepraszam, brak ETA).
Nie wygląda na to, że opiekun openjdk-r / ppa będzie aktualizował pakiet openjdk-7 poza wersją 7u95-2.6.4-3. Opis tego pakietu „Skopiowany z eksperymentu debian w Primary Archive for Debian GNU / Linux” daje nam jednak wskazówkę, jak sobie z tym poradzić.
Opcja 1: instalacja ręczna
Pobierz pakiety przeznaczone dla Twojej architektury:
(dla większości użytkowników oznacza to amd64, jeśli 64-bitowy lub i386, jeśli zainstalowany jest 32-bitowy Ubuntu)
(Próbuj) zainstalować pakiety za pomocą
dpkg
:Ubuntu 17.10 i wcześniejsze:
Ubuntu 18.04 i nowsze wersje:
Sprawdź wyjście z
dpkg
. Jeśli wystąpiły problemy z zależnością - co jest prawdopodobne - zobaczysz następujące (z architekturą zastąpioną amd64):Jeśli nie było problemów z zależnością, świetnie, gotowe, przejdź do # 4. W przeciwnym razie, jeśli chcesz rozwiązać niektóre problemy z zależnościami, jest to obsługiwane przez:
Zauważ, że nie ma potrzeby ponownego uruchamiania
dpkg
po pozwoleniu naapt
rozwiązanie zależności. Automatycznie zakończy instalację pakietów openjdk.Zaktualizuj alternatywy Java. Możesz wyświetlić wszystkie zainstalowane wersje Java za pomocą
update-java-alternatives --list
. Aby aktywować OpenJDK Java 1.7, uruchom:Możesz zauważyć błąd związany z
IcedTeaPlugin.so
niedostępnością wtyczki. To nie jest prawdziwa troska dla programistów pracujących z JDK.Sprawdź, czy Java działa:
co powinno wypisać coś podobnego do:
Opcja 2: Automatyczna instalacja (w tym aktualizacje z
apt
)Pinning może być wykorzystany do instalacji i aktualizacji openjdk-7-jdk i jego zależności od repozytoriów Debiana.
Utwórz plik przypinający, który mówi,
apt
aby rozważać tylko pakiety, które nas interesują (z pewnością nie chcemy, aby cała nasza dystrybucja Ubuntu była „uaktualniana” za pomocą eksperymentalnych pakietów Debiana).Utwórz plik
/etc/apt/preferences.d/debian
z poniższą zawartością. Musisz uprawnieniami administratora, więc użyć jednego zsudo vim
,sudo nano
,gksudo gedit
, itd.W przypadku Ubuntu 17.10 i wcześniejszych dołącz także następujące (i patrz uwaga na dole):
Zainstaluj brelok Debian:
Uwaga: chociaż jest to najprostsza metoda dodania breloka do debiana, może nie być aktualna. Sprawdź, czy dane wyjściowe są następujące, jak
apt update
w kroku 4:Jeśli zobaczysz ten błąd, dodaj ręcznie niezbędne klucze za pomocą:
gdzie
8B48AD6246925553
i7638D0442B90D010
powinny pasować do kluczy widocznych w komunikacie ostrzegawczym.Dodaj potrzebne repozytoria:
Dlaczego nie użyć stabilnego repozytorium Debiana? W stabilnej wersji Debiana napotkasz niezadowalające zależności. Eksperymentalne (dla openjdk-7) i sid (dla libjpeg62-turbo, libfontconfig1 i fontconfig-config) są bardziej łagodne w wersjach zależnych.
Zaktualizuj
apt
pamięć podręczną (spodziewaj się, że zajmie to trochę czasu, ponieważ listy pakietów Debiana są duże):Zainstaluj openjdk-7-jdk:
Zaktualizuj alternatywy Java. Możesz wyświetlić wszystkie zainstalowane wersje Java za pomocą
update-java-alternatives --list
. Aby aktywować OpenJDK Java 1.7, uruchom:Możesz zauważyć błąd związany z
IcedTeaPlugin.so
niedostępnością wtyczki. To nie jest prawdziwa troska dla programistów pracujących z JDK.Sprawdź, czy Java działa:
co powinno wypisać coś podobnego do:
notatki fontconfig
libfontconfig1
ifontconfig-config
musi zostać zaktualizowany do wersji 2.12 lub nowszej w systemie Ubuntu 17.10 i wcześniejszych. Pakiety aktualizacji z Debiana nie zawierają dostosowań Ubuntu, więc niektóre aplikacje wyświetlają brzydkie czcionki po zainstalowaniu tych pakietów; np. serwer proxy debugowania sieci Web. W zależności od używanych programów problem może dotyczyć lub nie.źródło
Możesz pobrać OpenJDK 7 z Azul, który może pasować do twoich potrzeb. Oba mają DEB (dla systemu pakietów) i dystrybucję ZIP. Pracowałem tylko z dystrybucją ZIP.
http://www.azul.com/downloads/zulu/zulu-linux/
źródło
Zainstaluj Javę 7 na Ubuntu 16.04, Ubuntu 17.04
Zaleca się zainstalowanie Oracle Java , ponieważ ma przewagę wydajności nad OpenJDK . Z tego powodu chcę opublikować alternatywę. Jeśli chcesz zainstalować Oracle Java, uruchom następujące polecenia w terminalu, aby zainstalować ją z PPA.
Dodaj potrzebne repozytoria:
Zaktualizuj
apt
pamięć podręczną i zainstaluj oracle-java7 :Podczas procesu instalacji musisz zaakceptować umowę licencyjną Oracle . Po zainstalowaniu musimy ustawić zmienne środowiskowe Java, takie jak JAVA_HOME
Prawidłowe zmienne środowiskowe Java.
Sprawdź, czy Java działa:
co powinno wypisać coś podobnego do:
źródło
apt-get
próbuje uzyskać instalator z nieistniejącej strony. - Jeśli potrzebujesz JDK 7, możesz pobrać instalatory ze strony Archiwum: oracle.com/technetwork/java/javase/downloads/…Alternatywa Oracle JDK:
Chciałem uniknąć wysiłku związanego z repozytoriami, ponieważ przełączam się między 7, 8 i 9, więc skończyłem z Oracle JDK zamiast OpenJDK. Pobrano z oficjalnej strony . Nie jestem pewien, czy najnowsza kompilacja 80 zawiera te same poprawki, co kompilacja OpenJDK 161. Ale mam ją do opracowania, więc to i tak niewiele dla mnie znaczy.
Następnie musisz ustawić
$JAVA_HOME
w środowisku, aby różne skrypty wybrały odpowiedni JDK (np. Maven, JBoss itp.).Dla kompletności, wersja 7 JDK została wycofana, nawet publiczne wsparcie dla JDK 8 zostało zakończone od września 2017 r. I nie otrzyma żadnych publicznych aktualizacji po wrześniu 2018 r.
źródło
Użyj pojemników
To jest powszechnie ważna odpowiedź na temat uruchamiania
<outdated>
usuniętego oprogramowania w<current>
systemie Ubuntu: przechowywanie aplikacji w kontener .Na przykład użyj Dockera i starszego obrazu podstawowego Ubuntu, w którym oprogramowanie, którego szukasz, jest nadal dostępne / obsługiwane.
Działa to również na odwrót; wypróbuj oprogramowanie na nowszej lub nawet innej dystrybucji Linuksa na aktualnie działającym stabilnym Ubuntu.
Przykład dla Java 7 przy użyciu Ubuntu 14.04
Zainstaluj Docker - darmowa wersja Docker CE jest w porządku. Zobacz na przykład https://docs.docker.com/install/linux/docker-ce/ubuntu/ lub użyj
docker.io
pakietu w najnowszych dostarczonych wersjach Ubuntu.W pustym folderze utwórz plik
Dockerfile
:Dodaj więcej pakietów w tym poleceniu, jeśli tego potrzebujesz.
W tym folderze uruchom:
Uruchom komendę w kontenerze jednorazowego użytku, używając tego obrazu Java 7:
Np .
java -version
:Wynik:
Opcjonalnie utwórz opakowanie dla wygody.
Utwórz plik
/usr/local/bin/java7-in-docker
z zawartością:Dzięki temu bieżący katalog roboczy będzie dostępny w kontenerze - nie w całym systemie plików, i podszy się pod twoje lokalne konto użytkownika w przestrzeni nazw kontenera.
Oznacz to jako plik wykonywalny:
Uruchom swoją Javę 7 w sposób transparentny:
źródło
Prostym sposobem jest:
Dodaj te linie do
/etc/apt/sources.list
:Następnie zaktualizuj apt i zainstaluj. Prawdopodobnie będziesz musiał obniżyć
tzdata
pakiet.Następnie zaleciłbym skomentowanie tych wierszy i apt update ponownie, aby zapobiec instalacji lub aktualizacji pakietów z tego repozytorium (co może prowadzić do nieoczekiwanego zachowania).
Jednym z problemów jest to, że musisz przechowywać te pakiety, aby nie zostały usunięte podczas aktualizacji systemu (szczególnie
tzdata
pakietu).UWAGA : Użyj tej metody jako ostateczności, wolą inne, które pozwolą na aktualizację bez problemów.
źródło