Когда Ubuntu 18.04 установлена в системе для различных приложений требуется чтобы был установлен пакет Java, но вот как это сделать правильно и при этом не захламить систему и не испортить чего. Добиться правильности и рабочих действий поможет моя написанная заметка, а как известно пишу я в первую очередь для самого себя и делаю это качественно, ведь мне пользоваться своими опубликованными наработками. Первым делом если система имеет редакцию Ubuntu 18.04 Server, то начинаю с заметки по удалению Cloud Init, а затем действия ниже. Я придерживаюсь правила когда решение задачи вытекает из предварительно сделанных действий и они как правило у меня все взаимосвязаны. Так что если кому-либо не помогло, увы ничем не могу помочь, учитесь сами.
ekzorchik@srv-bionic:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-bionic:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-bionic:~$ uname -a
Linux srv-bionic 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Устанавливаю в систему JDK/JRE из дефолтных репозитариев:
ekzorchik@srv-bionic:~$ sudo apt -y install default-jre
ekzorchik@srv-bionic:~$ sudo apt -y install default-jdk
ekzorchik@srv-bionic:~$ java --version
openjdk 10.0.1 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
Либо же устанавливать в систему пакет Java можно подключая соответствующий репозитарий (PPA), как я ранее это делал начиная в Precise,Trusty,Xenial:
ekzorchik@srv-bionic:~$ sudo add-apt-repository ppa:webupd8team/java
Press [ENTER] to continue or Ctrl-c to cancel adding it.
ekzorchik@srv-bionic:~$ sudo apt-get update && sudo apt -y install oracle-java8-installer
Do you accept the Oracle Binary Code license terms?
Yes
ekzorchik@srv-bionic:~$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Если в системе установлены различные версии пакета Java, то выбрать ту которая будет по дефолту можно так:
ekzorchik@srv-bionic:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
* 2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
0
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
ekzorchik@srv-bionic:~$ java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
Настройка переменной окружения:
ekzorchik@srv-bionic:~$ sudo nano /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
ekzorchik@srv-bionic:~$ source /etc/environment
ekzorchik@srv-bionic:~$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
Чтобы удалить отличный от выбранного по дефолту пакет java:
ekzorchik@srv-bionic:~$ dpkg --list | grep -i jdk
ekzorchik@srv-bionic:~$ sudo apt -y purge oracle-java8-installer
ekzorchik@srv-bionic:~$ sudo add-apt-repository -r ppa:webupd8team/java
Press [ENTER] to continue or Ctrl-c to cancel removing it.
ekzorchik@srv-bionic:~$ sudo update-alternatives --display java
java - auto mode
link best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java
link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java
link java is /usr/bin/java
slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1101
slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz
На заметку: от 09.02.2024
сделал заметку “Разбор, как установить Java on Ubuntu 22.04”
Разобрал, для себя, в будущем пригодиться данная наработка. И как показала дальнейшая практика не раз, все было сделано не напрасно. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.