lunedì 2 dicembre 2013

Ubuntu: creazione, installazione e disintallazione pacchetti deb Oracle Java 6 e 7

Tempo fa il cambio di licenza di Oracle Java aveva imposto la sua eliminazione dai repository Ubuntu.

Martin Wimpress ha creato un script che non solo sopperisce a questa mancanza, ma fa molto di più:
  • crea un repository locale;
  • scarica i file Java dal sito Oracle;
  • usando questi file crea dei pacchetti deb sia per il runtime che per il JDK (serve a chi sviluppa in Java);
  • i pacchetti deb creati possono essere usati per un'installazione ex-novo o per aggiornare pacchetti precedentemente installati usando direttamente il vostro gestore dei pacchetti preferito, ad esempio Gestore Pacchetti (Sinaptic) o l'Ubuntu Sofware Center.
Ho testato il tutto su Ubuntu 12.04 LTS (Precise) a 64 bit, ma dovrebbe funzionare con tutte le versioni di Ubuntu dalla 10.10 in poi, sia a 32 che 64 bit.

L'autore dello script infatti indica chiaramente che lo script non è compatibile solo con Ubuntu 10.04.

Ecco allora le poche semplici istruzioni per creare ed installare i pacchetti deb di Oracle Java 6 e 7 su Ubuntu:

mkdir ~/Scrivania/java
cd ~/Scrivania/java

Fate attenzione, la prossima è un'unica riga anche se eventualmente la vedrete andare a capo:

wget https://github.com/flexiondotorg/oab-java6/raw/0.3.0/oab-java.sh -O oab-java.sh

e poi

chmod +x oab-java.sh

A questo punto non vi resta che lanciare lo script con le opzioni giuste per scaricare Java dal sito Oracle e creare i pacchetti deb per la successiva installazione.

Per creare i pacchetti di Oracle Java 6 (ATTENZIONE: non riceve più aggiornamenti di sicurezza) basta il comando:

sudo ./oab-java.sh


Se invece volete creare i pacchetti per Oracle Java 7 (consigliato), allora dovete aggiungere un'apposita opzione al  comando precedente:

sudo ./oab-java.sh -7

Se per caso avviate lo script da dietro un proxy, il sudo iniziale diventa sudo -i, così:

sudo -i ./oab-java.sh -7

Appena lo script parte vi indicherà una stringa da inserire in un altro terminale per seguire l'elaborazione in tempo reale, è qualcosa del tipo:

tail -f ~/Scrivania/java/oab-java.sh.log

ma voi usate direttamente quella che compare nel vostro terminale.

Aprite un secondo terminale e incollate lì la vostra stringa, poi date un invio sulla tastiera: potrete vedere il gran numero di operazioni svolte dallo script e anche eventuali messaggi di errore nel caso qualcosa andasse storto.

Ora mettetevi comodi: a seconda della potenza del vostro computer e la velocità della connessione Internet (c'è molta roba da scaricare a cominciare da Java stesso), si va da qualche minuto a qualche decina di minuti di elaborazione.

In realtà tutto potrebbe terminare molto prima se vi sono dipendenze insoddisfatte per la compilazione come è accaduto a me. L'elaborazione si è fermata e ho ricevuto questo messaggio:

dpkg-checkbuilddeps: Unmet build dependencies: curl
dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: warning: (Use -d flag to override.)
2599's retcode: 3


Se beccate anche voi lo stesso messaggio di errore, tagliate la testa al toro dando questo comando,

sudo apt-get install build-essential curl

poi rilanciate il comando di creazione dei pacchetti Java che avevate dato prima. A me si è fermato una seconda volta con questo nuovo messaggio:

debian/control did change, please restart the build
make: *** [debian/control] Errore 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2
3223's retcode: 2


Sta dicendo di rilanciare nuovamente la creazione dei pacchetti. Se succede anche a voi, rilanciate ancora una volta l'ultimo comando dato e dovrebbe risolversi tutto.

Se invece continua a darvi ostinatamente lo stesso errore, chiudete entrambi le finestre di terminale, poi riapritele e ripetete tutto ancora una volta: prima il comando di creazione dei pacchetti Java,

sudo ./oab-java.sh -7

poi quello per osservare i messaggi dell'elaborazione:

tail -f ~/Scrivania/java/oab-java.sh.log

Una volta che è terminata correttamente la creazione dei pacchetti, viene automaticamente lanciato l'update di apt-get che rende visibile al gestore del software di Ubuntu i pacchetti Java appena creati.

Ora avrete a disposizione alcune opzioni d'installazione, usate quella che vi serve.

Installazione ex-novo Oracle Java 7 runtime:

sudo apt-get install oracle-java7-jre oracle-java7-plugin oracle-java7-fonts

Installazione ex-novo Oracle Java 7 runtime + JDK:

sudo apt-get install oracle-java7-jre oracle-java7-plugin oracle-java7-fonts oracle-java7-jdk

Aggiornamenti di pacchetti precedentemente installati, sia runtime che JDK:

sudo apt-get upgrade

Non dimenticate di verificare il corretto funzionamento di Java.

Se volete disinstallare Java da Ubuntu, trattandosi di normali pacchetti usate i soliti strumenti che Ubuntu mette a disposizione per farlo, ad esempio Gestore Pacchetti (Sinaptic) o l'Ubuntu Sofware Center, basta cercare i pacchetti che iniziano con il nome "oracle-java".

Se invece preferite la riga di comando:

sudo apt-get remove --purge oracle-java7-jre oracle-java7-plugin oracle-java7-fonts oracle-java7-jdk