Installare Java su Debian
ATTENZIONE: Dal 19/05/2006 non è più necessario seguire questa guida. Sun ha deciso di cambiare licenza durante il JavaOne di quest'anno quindi ora il pacchetto è presente anche nei repository di debian.
Per il corso di Ingegneria del Software ho dovuto sbattere la testa un bel po' per capire come installare Java e il JDK su Debian e devo dire che mi sono trovato in difficoltà visto la mancanza di documentazione. Quello che segue è quanto sono riuscito a capire dopo un lungo pomeriggio di imprecazioni contro la mia distro preferita e la Sun.
Introduzione
Come probabilmente saprete Java è un marchio registrato di Sun Microsystem. La licenza con cui il JDK e il JRE sono distribuiti non sono conformi con le linee guida di Debian e questo ha fatto si che non ci sia un vero e proprio pacchetto da usare con apt-get per installare Java. Fino ad ora mi ero sempre arrangiato installando a mano usando il .bin fornito dalla Sun e impostato tutte le variabili d'ambiente e links da solo. Chi mi conosce un po' sa che non sono un grande fan di questo linguaggio di programmazione e i 5 minuti per scaricare, scompattare e rendere il tutto funzionante erano anche troppi. Non passando per apt-get però mi ha sempre costretto a cancellare tutti i files da solo una volta che questi non mi servivano più. Creando un .deb ho avuto la possibilità di poter usare il file in questione anche in futuro. In fine se volessi installare dei pacchetti che dipendono da Java tramite apt-get questo non si rifiuterà più come una volta quando non poteva sapere in alcun modo che avevo già installato Java a mano.
Download di Java
Prima di incominciare dovete procurarvi Java dal sito della Sun. Per scaricarlo vi basterà andare al sito java.sun.com e scegliere la versione che vi serve. Se vovete sviluppare programmi usando questo linguaggio, probabilmente siete stati costretti, vi servirà il JDK che si aggira sui 50 MByte ma fate attenzione a non scegliere la versione con compreso NetBeans. Questa infatti possiede un suo installer grafico che non funziona con il metodo illustrato in questa guida. Se invece vi interessa solo usare Java per eseguire programmi già precompilati come Azureus o le Applet che si trovano su certi siti internet vi basterà scaricare la versione con il solo JRE. Una volta cliccato sul link corrispondente vi verra chiesto di leggere una licenza, accettate e cliccate sul Accept. Ora non vi resterà che cliccare sul file perla vostra architettura, ma ricordate sempre di scaricare il file .bin e non la versione .rpm.
Configurazione di Apt-Get
Prima di continuare dovete assicurarvi di avere tutti i repository giusti nella lista di apt. Se avete lasciato configurare a d-i durante l'installazione i vari mirrors probabilmente non avete la parte Contrib del repository che contiene proprio quello che vi serve. Aprite come utente root il vostro file /etc/apt/sources.list. Nella lista dei vari repository dovreste avere qualcosa di simile a questo
deb http://ftp.it.debian.org/debian/ unstable main non-free deb-src http://ftp.it.debian.org/debian/ unstable main non-free
Ora dovete modificarlo e aggiungere contrib alla fine dei due repository in questo modo.
deb http://ftp.it.debian.org/debian/ unstable main non-free contrib deb-src http://ftp.it.debian.org/debian/ unstable main non-free contrib
Ora, sempre da utente root, date il comando apt-get update per aggiornare le liste dei pacchetti e proseguite. Se avete già contrib tra i repository poco male, avrete meno cosa da fare.
Preparazione Iniziale
Prima di creare il pacchetto per Debian dovete scaricare alcuni programmi che vi serviranno nel processo. Si tratta di fakeroot e java-package. Il primo vi serve per fingervi root, mentre il secondo contiene lo script che userete per creare il file. Date quindi il seguente comanda da utente root.
# apt-get install fakeroot java-package
Creazione del pacchetto
Ora che avete il file .bin sul vostro disco rigido potete dare il comando per creare il pacchetto.
$ fakeroot make-jpkg jdk-1_5_0_06-linux-i586.bin
Lo script prima di incominciare vi chiederà conferma dovrete quindi premere solo Y. L'output sarà simile a quello qui sotto. Per facilitarvi ho messo quello che ho dovuto digitare da tastiera in grassetto.
Creating temporary directory: /tmp/make-jpkg.XXXXRMUFZO
Loading plugins: blackdown-j2re.sh blackdown-j2sdk.sh common.sh ibm-j2re.sh ibm-j2sdk.sh j2re.sh j2sdk-doc.sh j2sdk.sh j2se.sh sun-j2re.sh sun-j2sdk-doc.sh sun-j2sdk.sh
Detected product:
Java(TM) Software Development Kit (J2SDK)
Standard Edition, Version 1.5.0+update06
Sun Microsystems(TM), Inc.
Is this correct [Y/n]: Y
Checking free diskspace: done.
In the next step, the binary file will be extracted. Probably a
license agreement will be displayed. Please read this agreement
carefully. If you do not agree to the displayed license terms, the
package will not be built.
Press [Return] to continue:
Ora vi verra visualizzata a video la licenza di Java. Leggetela e una volta arrivati in fondo digitate yes e premete INVIO. Ora lo script farà tutto da solo e non vi preoccupate se ad un certo punto appariranno alcuni Permission denied è normale visto che non siete realmente root.
Installare Java
Una volta terminata la creazione del file .deb non vi resta che installare il tutto. Date da utente root usate dpkg -i e il nome del file generato come nell'esempio qui sotto.
# dpkg -i sun-j2sdk1.5_1.5.0+update01_i386.deb
Ora datevi una pacca sulla spalla da soli perché avete installato con successo Java.
Controllo funzionamento
Prima di continuare con altro vi conviene controllare se tutto funziona correttamente. L'unica cosa che dovete fare è eseguire il comando java da console e vedere se questo viene trovato. Aprite quindi una shell e digitate i seguenti comandi.
$ java Usage: java [-options] class [args...] ...
Se avete installato il JDK allora vi interesserà anche controllare la presenza di javac e javadoc.
$ javac Usage: javac <options> <source files> ... $ javadoc javadoc: error - No packages or classes specified. usage: javadoc [options] [packagenames] [sourcefiles] [@files] ...
Ho incluso solo le prime due o tre righe in questi esempi quindi non vi preoccupate se ricevete molte più righe di quelle riportate qui sopra è perfettamente normale. Questi tre comandi quando non ricevono parametri in ingresso visualizzano a video un messaggio che contiene le istruzioni per usarli.
Impostare il CLASSPATH
Questo non è un passaggio fondamentale. Se non usate programmi strani come Poseidon potete anche saltarlo. In ogni caso non dovrete far altro che impostare la variabile d' ambiente CLASSPATH. Questa variabile contiene una lista di directory separate dal simbolo ; in cui Java andrà a guardare quando dovrà cercare i file .class. Impostarla è veramente molto semplice. Basta aprire il file /etc/bash.bashrc e inserire il codice qui sotto ovviamente mettendo il percorso delle directory che vi interessano.
CLASSPATH=".;/usr/lib/j2sdk1.5-sun/jre/lib" export CLASSPATH
Come prima andate in /usr/lib e cercate la vostra cartella principale. Una volta trovato il percorso completo di Java aggiungete jre/lib se state installando il JDK. Mentre se avete scelto la versione con il solo JRE aggiungete solo lib.
Altri programmi potrebbero richiedere anche altre variabili come JAVA_HOME e alcuni strumenti di sviluppo hanno bisogno di JDK_HOME quindi è meglio settare anche queste due variabili. Non dovete far altro che definire le variabili nello stesso file di prima usando però la directory principale di Java.
JAVA_HOME="/usr/lib/j2sdk1.5-sun/" export JAVA_HOME JDK_HOME="/usr/lib/j2sdk1.5-sun/" export JDK_HOME
Plugin per FireFox
Per installare il plugin in FireFox non dovrete fare assolutamente niente. Ci pensera Debian a creare il link nella directory giusta. Per controlalre se viene riconosciuto non dovrete far altro che aprire il browser e digitare l'url about:plugins. Se Java non fosse nella lista dei plugin riconosciuti potete provare a riconfigurare i pacchetti con il seguente comando.
# dpkg-reconfigure firefox sun-j2sdk1.5
Usare più versioni insime
In alcuni rari casi è necessario avere più versioni del JDK o del JRE installate nello stesso istante. Ad esempio se volete testare un programma sia con Java 1.5 che con Java 1.4. Anche in questo Debian vi aiuta automatizando molte cose. Prima di tutto effettuate nuovamente gli stessi passi sulla nuova versione che volete installare per creare un'altro pacchetto .deb. Una volta installato il nuovo pacchetto non dovrete far altro che usare update-alternatives.
Usare il meccanismo di alternative di Debian è molto semplice. Ad esempio per vedere quali e quante versioni di javac avete a disposizione basta dare il seguente comando update-alternatives --list javac e otterete un output simile a questo:
# update-alternatives --list javac /usr/lib/j2sdk1.5-sun/bin/javac /usr/lib/j2sdk1.4-sun/bin/javac
Se volete cambiare la versione in uso in quella contenuta nel pacchetto Java 1.4 bastera dare il comando update-alternatives --set javac /usr/lib/j2sdk1.4-sun/bin/javac ottenendo un output simile a questo:
# update-alternatives --set javac /usr/lib/j2sdk1.4-sun/bin/javac Using `/usr/lib/j2sdk1.4-sun/bin/javac' to provide `javac'.
Un po' di pulizia
Ora che avete configurato tutto potete passare a fare un po' di pulizia. I pacchetti fakeroot e java-package non vi servono più quindi potete cancellarli. Specialmente fakeroot potrebbe, in qualche raro caso, introdurre dei problemi di sicurezza. Quindi date da root il seguente comando per cancellarli.
# apt-get remove --purge fakeroot java-package
Siete arrivati fino a qui? Bravi! Ora che è finito tutto andate a divertirvi con una bella partitina a biliardo su yahoo! games.