AGGIORNAMENTO : installazione senza privilegi di root di seguito
Ti consiglio di non installare manualmente i pacchetti sul sistema ubuntu se esiste già un repository (semi-ufficiale) in grado di risolvere il tuo problema. Inoltre, usa Oracle JDK per lo sviluppo, solo per evitare (molto sporadici) problemi di compatibilità (ho provato molti anni fa, è sicuramente meglio ora).
Aggiungi il repository webupd8 al tuo sistema:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Installa la tua versione preferita di jdk (versioni da java-6 a java-9 disponibili):
sudo apt-get install oracle-java8-installer
Puoi anche installare più versioni di jdk, mescolando versioni di openjdk e oracle. Quindi puoi utilizzare il comando update-java-alternatives per passare dalla versione installata:
# 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
Requisiti
Se sei add-apt-repository: command not found
sicuro di aver software-properties-common
installato:
sudo apt-get install software-properties-common
Se stai usando una versione precedente di Ubuntu:
sudo apt-get install python-software-properties
Installazione JDK senza privilegi di root
Se non hai i diritti di amministratore sulla tua macchina di destinazione, la scommessa più semplice è usare sdkman
per installare openjdk certificato zulu:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
NOTA : sdkman consente di installare anche il JDK Oracle ufficiale, sebbene non sia un'opzione predefinita. Visualizza le versioni disponibili con:
sdk ls java
Installa la versione scelta con:
sdk install java <version>
Per esempio:
sdk install java 9.0.1-oracle
Glossario dei comandi
sudo <command> [command_arguments]
: esegue un comando con il privilegio di superutente.
add-apt-repository <PPA_id>
: Ubuntu (proprio come ogni derivato Debian e in generale ogni distribuzione Linux) ha un repository principale di pacchetti che gestiscono cose come le dipendenze dei pacchetti e l'aggiornamento. In Ubuntu è possibile estendere il repository principale utilizzando un PPA (Personal Package Archive) che solitamente contiene pacchetti non disponibili nel sistema (proprio come oracle jdk) o versioni aggiornate di quelli disponibili (esempio: LibreOffice 5 in LTS è disponibile solo tramite questo PPA ).
apt-get [install|update|upgrade|purge|...]
: è "il" gestore di pacchetti da riga di comando utilizzato per manipolare lo stato di ogni repository sul sistema (l'installazione / aggiornamento / upgrade può essere visto come un'alterazione dello stato corrente del repository).
Nel nostro caso : con il comando sudo add-apt-repository ppa:webupd8team/java
informiamo il sistema che al prossimo aggiornamento del repository dovrà recuperare le informazioni sui pacchetti anche dal repository webupd8.
Con sudo apt-get update
effettivamente aggiorniamo il repository di sistema (tutte queste operazioni richiedono privilegi di superutente, quindi anteponiamo sudo ai comandi).
sudo apt-get install oracle-java8-installer
update-java-alternatives (una specifica versione java di update-alternatives ): in Ubuntu diversi pacchetti forniscono la stessa funzionalità (navigare in Internet, compilare messaggi di posta, modificare un file di testo o fornire eseguibili java / javac ...). Per il sistema consente di scegliere l'utensile preferiti dall'utente dato un compito specifico meccanismo utilizzando link simbolici sotto /etc/alternatives/
viene utilizzato. Prova ad aggiornare jdk come indicato sopra (passa da java 7 a java 8) e guarda come modificare l'output di questo comando:
ls -l /etc/alternatives/java*
Nel nostro caso : sudo update-java-alternatives --set java-8-oracle
aggiorna i collegamenti simbolici in / etc / alternatives per puntare agli eseguibili java-8-oracle.
Extra:
man <command>
: inizia a usare man per leggere un aiuto davvero ben scritto e dettagliato su (quasi) ogni comando di shell e le sue opzioni (ogni comando che menziono in questa piccola risposta ha una pagina man, prova man update-java-alternatives
).
apt-cache search <search_key>
: interroga la cache di APT per cercare un pacchetto correlato alla chiave_ricerca fornita (può essere il nome del pacchetto o qualche parola nella descrizione del pacchetto).
apt-cache show <package>
: fornisce informazioni APT per un pacchetto specifico (versione del pacchetto, installato o meno, descrizione).