ОНОВЛЕННЯ : встановлення без привілеїв root нижче
Раджу не встановлювати пакунки вручну в системі ubuntu, якщо вже існує (напівофіційний) репозитарій, здатний вирішити вашу проблему. Крім того, використовуйте Oracle JDK для розробки, щоб уникнути (дуже епізодичних) проблем сумісності (я пробував багато років тому, зараз це, безумовно, краще).
Додайте repo webupd8 до вашої системи:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Встановіть бажану версію jdk (доступні версії від java-6 до java-9):
sudo apt-get install oracle-java8-installer
Ви також можете встановити декілька версій jdk, змішуючи версії openjdk та oracle. Тоді ви можете використовувати команду update-java-alternatives для переключення між встановленою версією:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
Вимоги
Якщо ви add-apt-repository: command not found
впевнені, що software-properties-common
встановили:
sudo apt-get install software-properties-common
Якщо ви використовуєте стару версію Ubuntu:
sudo apt-get install python-software-properties
Встановлення JDK без права root
Якщо у вас немає прав адміністратора на вашій цільовій машині, найпростішою ставкою є sdkman
встановлення зулу, сертифікованого openjdk:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
ПРИМІТКА : sdkman дозволяє встановити також офіційний Oracle JDK, хоча це не стандартний варіант. Переглянути доступні версії за допомогою:
sdk ls java
Встановіть обрану версію за допомогою:
sdk install java <version>
Наприклад:
sdk install java 9.0.1-oracle
Словник команд
sudo <command> [command_arguments]
: виконати команду з привілеєм суперкористувача.
add-apt-repository <PPA_id>
: Ubuntu (як і всі похідні Debian та, загалом кажучи, кожен дистрибутив Linux) має основне сховище пакетів, яке обробляє такі речі, як залежності пакунків та оновлення. В Ubuntu можна розширити основний репозиторій за допомогою PPA (Personal Package Archive), який зазвичай містить пакети, недоступні в системі (так само, як oracle jdk) або оновлені версії доступних (приклад: LibreOffice 5 у LTS доступний лише через цей PPA ).
apt-get [install|update|upgrade|purge|...]
: це "обробник пакетів командного рядка, який використовується для маніпулювання станом кожного сховища в системі (встановлення / оновлення / оновлення можна розглядати як зміну поточного стану сховища).
У нашому випадку : за допомогою команди sudo add-apt-repository ppa:webupd8team/java
ми повідомляємо систему, що наступне оновлення сховища повинно отримувати інформацію про пакети також із репозиторію webupd8.
З sudo apt-get update
нами на самому ділі оновити репозиторій системи (всі ці операції потрібні повноваження супер, тому ми перед ім'ям Судо до командам).
sudo apt-get install oracle-java8-installer
update-java-alternatives (конкретна java-версія update-alternative ): в Ubuntu кілька пакетів надають однакову функціональність (переглядають Інтернет, компілюють пошту, редагують текстовий файл або надають виконувані файли java / javac ...). Для того, щоб система могла вибрати інструмент улюбленого користувача з певним завданням, використовується механізм із використанням символьних посилань під /etc/alternatives/
. Спробуйте оновити jdk, як зазначено вище (перемикання між java 7 і java 8), і подивіться, як змінюється вивід цієї команди:
ls -l /etc/alternatives/java*
У нашому випадку : sudo update-java-alternatives --set java-8-oracle
оновіть символьні посилання в / etc / alternatives, щоб вказати на виконувані файли java-8-oracle.
Додатково:
man <command>
: починайте використовувати man для читання дійсно добре написаної та детальної довідки щодо (майже) кожної команди оболонки та її параметрів (кожна команда, яку я згадав у цій маленькій відповіді, має сторінку man, спробуйте man update-java-alternatives
).
apt-cache search <search_key>
: запитувати кеш APT для пошуку пакета, пов'язаного з наданим ключем search (може бути ім'ям пакета або деяким словом в описі пакета).
apt-cache show <package>
: надає інформацію про APT для певного пакету (версія пакета, встановлена чи ні, опис).