GNU/Linux >> Linux Esercitazione >  >> Linux

Ubuntu:OpenJDK 8 - Impossibile individuare il pacchetto

Ricevo OpenJDK 8 dai repository Debian ufficiali, piuttosto che da un PPA casuale o da un binario Oracle non libero. Ecco come l'ho fatto:

sudo apt-get install debian-keyring debian-archive-keyring

Rendi /etc/apt/sources.list.d/debian-jessie-backports.list :

deb http://httpredir.debian.org/debian/ jessie-backports main

Crea /etc/apt/preferences.d/debian-jessie-backports :

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

Poi finalmente esegui l'installazione:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

sudo apt-get update
sudo apt-get  install openjdk-8-jdk

questo dovrebbe funzionare


Come puoi vedere, ho solo java 1.7 installato (su una macchina Ubuntu 14.04).

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

Per installare Java 8, l'ho fatto,

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Successivamente, ora ho java 7 e 8,

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

BONUS AGGIUNTO (come passare da una versione all'altra)

  • esegui il seguente comando dal terminale:

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-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

Come puoi vedere sto eseguendo open jdk 8. Per passare a jdk 7, premi 1 e premi Invio chiave. Fai lo stesso per javac anche con sudo update-alternatives --config javac .

Controlla le versioni per confermare la modifica:java -version e javac -version .


AGGIORNA :installazione senza privilegi di root di seguito

Ti consiglio di non installare i pacchetti manualmente 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 problemi di compatibilità (molto sporadici) (ho provato molti anni fa, ora è sicuramente meglio).

Aggiungi webupd8 repository sul tuo sistema:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Installa la tua versione preferita di jdk (sono disponibili versioni da java-6 a java-9):

sudo apt-get install oracle-java8-installer

Puoi anche installare più versioni di jdk, mescolando le versioni openjdk e oracle. Quindi puoi usare il comando update-java-alternatives per passare da una versione installata all'altra:

# 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 ottieni add-apt-repository: command not found assicurati di avere 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 target, la soluzione 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 Oracle JDK ufficiale, sebbene non sia un'opzione predefinita. Visualizza le versioni disponibili con:

sdk ls java

Installa la versione scelta con:

sdk install java <version>

Ad esempio:

sdk install java 9.0.1-oracle

Glossario dei comandi

  • sudo <command> [command_arguments] :esegue un comando con privilegi 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 di solito 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 della riga di comando utilizzato per manipolare lo stato di ogni repository sul sistema (installazione/aggiornamento/aggiornamento possono essere visti 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 il prossimo aggiornamento del repository deve recuperare le informazioni sui pacchetti anche dal repository webupd8.

Con sudo apt-get update in realtà aggiorniamo il repository di sistema (tutte queste operazioni richiedono privilegi di superutente, quindi anteponiamo sudo ai comandi).

sudo apt-get install oracle-java8-installer

  • alternative-di-aggiornamento-java (una versione java specifica di update-alternatives ):in Ubuntu diversi pacchetti forniscono le stesse funzionalità (navigare in internet, compilare mail, modificare un file di testo o fornire eseguibili java/javac...). Per consentire al sistema di scegliere lo strumento preferito dall'utente dato un compito specifico un meccanismo che utilizza collegamenti simbolici sotto /etc/alternatives/ viene usato. Prova ad aggiornare il jdk come indicato sopra (passa da java 7 a java 8) e guarda come cambia 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 in modo che puntino agli eseguibili java-8-oracle.

Extra:

  • uomo <command> :inizia a usare man per leggere un aiuto davvero ben scritto e dettagliato su (quasi) tutti i comandi della 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 APT per cercare un pacchetto correlato alla search_key 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, installata o meno, descrizione).


Linux
  1. Impossibile installare Mariadb su Ubuntu 20.04?

  2. Installazione di Cuda 8 su Ubuntu 16:impossibile individuare il pacchetto Cuda?

  3. Installa Odoo 9 su Ubuntu 14.04

  4. Ubuntu E:Impossibile individuare il pacchetto mysql

  5. E:Impossibile individuare il pacchetto python-pip su Ubuntu 18.04

Risoluzione dei problemi "E:Impossibile individuare il pacchetto" Errore su Ubuntu [Tutorial per principianti]

Come installare Kubernetes su Ubuntu 18.04 LTS

Come installare il filato su Ubuntu 18.04

COME INSTALLARE NEXTCLOUD SU UBUNTU?

Come installare Asterisk in Ubuntu 20.04

Come installare Sendmail su Ubuntu 22.04