Old:Java in Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(20 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{Old}}
== Introduzione ==
== Introduzione ==
Il [[repository]] � a tutti gli effetti un archivio ordinato dove sono raccolti i pacchetti Debian (siano essi pacchetti binari o sorgenti) in modo ben organizzato e costantemente aggiornato. In ogni sistema debian i repository utilizzati vengono indicati nel file <tt>/etc/apt/sources.list</tt>. Vedi anche [[Faq#Repository|FAQ: Cos'� un '''repository'''?]].
Questa guida vuole dare all'utente una visuale il più possibile completa dello stato di Java all'interno di Debian, mostrando le soluzioni possibili per la sua installazione e le alternative, passando per la policy relativa a Java ed alle applicazioni scritte con questo linguaggio.
 
== Lista repository ufficiali debian ==
Di seguito troverete l'elenco repository ufficiali da inserire nel <tt>sources.list</tt> per le varie [[La struttura della Distribuzione|versioni di debian]]. Il mirror � quello italiano. I repository dei pacchetti sorgente sono commentati. per ulteriori informazioni leggere la sezione: [[I repository ed il loro utilizzo#Sources.list|Sources.list]].
 
=== Debian Sarge ===
 
  ## Debian Stable (sarge)
  deb http://ftp.it.debian.org/debian/ stable main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ stable main contrib non-free
  ## Aggiornamenti della sicurezza
  deb http://security.debian.org/ sarge/updates main contrib
  #deb-src http://security.debian.org/ sarge/updates main contrib
 
Per l'uso di sarge in ambito desktop (ma non solo) sono molto utili i [[backports]]:
 
* [http://backports.org/ Debian Backports]
 
=== Debian Etch ===
 
  ## Debian Testing (etch)
  deb http://ftp.it.debian.org/debian/ testing main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free
  ## Aggiornamenti della sicurezza
  deb http://security.debian.org/ etch/updates main contrib
  #deb-src http://security.debian.org/ etch/updates main contrib
 
=== Debian Sid ===
 
  ## Debian Unstable (sid)
  deb http://ftp.it.debian.org/debian/ unstable main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free
 
Per '''Sid''' non c'� il repository per la sicurezza dato che eventuali falle vengono corrette semplicemente con l'aggiornamento del pacchetto incriminato.
 
== Lista repository non ufficiali ==
Per una lista dei repository non ufficiali pi� diffusi vedere: [[Repository non ufficiali]].


== La Struttura dei repository ==
== La Policy Java ==
Un repository � suddivisibile, grossomodo, in due sezioni:
=== Java in Debian ===
* '''dists''' in questo ramo sono contenuti i file di controllo, che permettono il funzionamento del sistema di pacchettizzazione. Infatti sono presenti i file che descrivono i pacchetti presenti nell'archivio (divisi per la release di appartenenza);
Lo scopo di Debian è quello di fornire una piattaforma costituita al 100% da software libero. Per questa ragione, quindi, alcuni programmi Java non sono disponibili nella distribuzione standard di Debian: non già, certamente, per motivi tecnologici. Al contrario, sono nati diversi progetti collaterali - subito incorporati nel sistema Debian - allo scopo di fornire un'infrastruttura Java, con licenza "libera".
* '''doc''' raccoglie la documentazione di base per Debian (segnalazioni di Bug, Faq, il Contratto Sociale ed altro)
* '''indices''' contiene l'indice di tutti i file contenuti in tutti i pacchetti. Queste informazioni sono usate da [[Apt-file: ricerca all'interno dei pacchetti|<tt>apt-file</tt>]].
* '''non-US''' a causa di problemi legali dovuti al divieto di esportazione di matariale per la difesa (tra cui materiale crittografici, utilizzati anche in PGP e SSH). Per ovviare a questi problemi, i pacchetti sono stati posti in una sezione a parte, la cui distribuzione � legata a server non Statunitensi.
* '''pool''' questo � l'archivio vero e proprio, dove sono contenuti i pacchetti, raggruppati per lettera iniziale;
* '''project''' contiene materiale per sviluppatori. Degne di nota la direcotory experimetal, che contiene i pacchetti in fase di sviluppo e perfezionamento;<br/>
* '''tools''' contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux.


== La Suddivisione del repository ==
Allo stato attuale Debian rende disponibili le seguenti implementazioni Java:
Navigando un po' tra gli archivi Debian, si nota subito una particolare suddivisione: i repository, infatti, sono divisi in '''main''', '''contrib''' e '''non-free''', nel modo seguente:
* OpenJDK
* '''main''' � la sezione principale, che contiene il 90% dei pacchetti presenti in Debian
* Javacc
* '''contrib''' raccoglie i pacchetti coerenti con la DFSG5.6, ma che dipendono da pacchetti che non la rispettano
* Gcj
* '''non-free''' contiene dei pacchetti che possiedono delle limitazioni nella distribuzione (ad esempio perch� non utilizzabili in ambito commerciale o perch� dipendenti da applicazioni o pacchetti che non rispettano la Debian Free Software Guideline)


== Sources.list ==
=== Applicazioni scritte in Java ===
=== Il ruolo fondamentale ===
La policy Debian ammette l'inserimento, all'interno dei repository, di applicazioni scritte in Java. L'unica restrizione è legata all'ambiente in cui può essere compilata ed eseguita. Le applicazioni, infatti, devono ''girare'' su una o più JVM presenti in Debian (quindi, prima d'ora, non era possibile trovare nel repository applicazioni che non compilassero e funzionassero con kaffe e le librerie presenti in Debian).
Il file '''/etc/apt/sources.list''' � forse il pi� importante file di configurazione del sistema di gestione dei pacchetti Debian. Esso, infatti, contiene l'elenco e gli indirizzi dei repository a cui apt accede.


=== Ordine di Inserimento ===
La collocazione dei pacchetti all'interno del repository ([[main]], [[contrib]], [[non-free]]) è legata, inoltre, alla licenza del compilatore/JVM, oltre che a quelle delle librerie utilizzate.
� importante inserire i repository con un giusto ordine: i primi in elenco, infatti, sono i pi� importanti (o favoriti). Per migliorare le performance, � consigliabile ordinarli per velocit� (Es. prima il cdrom, poi la rete locale, poi internet, ...).


=== Sintassi ===
== Java in Debian ==
Ogni riga che descrive un repository ha una ben determinata sintassi:
=== OpenJDK ===
<pre>
* Home page: http://openjdk.java.net/
deb uri distribution [component..]
* Pacchetti Debian: [http://packages.debian.org/search?keywords=openjdk-6 openjdk-6], [http://packages.debian.org/search?keywords=openjdk-7 openjdk-7], [http://packages.debian.org/search?keywords=openjdk-8 openjdk-8], [http://packages.debian.org/search?keywords=openjdk-9 openjdk-9]
</pre>


Analizziamo i singoli componenti:
=== Javacc ===
* '''deb o deb-src''' serve ad indicare se il repository indicato contiene pacchetti binari o pacchetti sorgenti (se li contiene entrambi, � necessario specificarlo usando due righe diverse).
* Home page: https://javacc.java.net/
* '''uri''' indica l'indirizzo a cui � possibile trovare il repository; � possibile scegliere tra i seguenti metodi di accesso ai pacchetti:
* Pacchetti: [http://packages.debian.org/search?keywords=javacc javacc, javacc-doc e libjavacc-maven-plugin-java]
** '''file''' permette di inserire un repository presente sull'Hard Disk del computer;
** '''cdrom''' permette di inserire un repository presente su un cd-rom;
** '''http''' permette di accedere ad un repository tramite il protocollo http (se � impostata una variabile di ambiente '''http_proxy''' col formato '''http://server:port/''' verranno usate queste opzioni per accedere al repository; in caso di necessit� di autenticazione, � possibile specificare l'inidirizzo del proxy, nella variabile d'ambiente '''http_proxy''', nel seguente modo: '''http://user:pass@server:port/''', anche se risulta non essere un modo sicuro di autenticazione);
** '''ftp''' permette di accedere ad un repository tramite il protocollo ftp; � possibile specificare un proxy nell stesso modo indicato per http al punto precedente, sostituendo alla variabile '''http_proxy''' '''ftp_proxy''';
** '''copy''' � idendico a file, ma i file utilizzati vengono salvati nella cache di apt; utile nel caso di supporti removibili quali Usb-drive, Floppy, Zip, ...;
** '''rsh, ssh''' permette di accedere ad un repository tramite il protocollo ssh. Non � possibile, per�, effettuare alcuna autenticazione interativa, ma solo tramite lo scambio di chiavi RSA.
* '''distribution''' indica la [[La struttura della Distribuzione|distribuzione (o release)]] utilizzata... � possibile usare il nome in codice (sarge, etch, sid) o il nome generico (stable, testing, unstable);
*'''component''' indica la sezione (non-free, main, contrib...) del repository da inserire; sono possibili scelte multiple.


=== Alcuni esempi ===
=== Gcj ===
Non c'� niente di meglio, per capire la sintassi del file sources.list, si un po' di esempi.
* Home page: https://gcc.gnu.org/java/
* Pacchetti: [http://packages.debian.org/search?keywords=gcj elenco pacchetti Gcj disponibili nei repository Debian]


I repository ufficiali (binari e sorgenti) presi da un mirror italiano:
=== Oracle Java ===
<pre>
Il Java ufficiale. Non è nè FreeSoftware, nè OpenSource.
deb http://ftp.it.debian.org/debian/ stable main non-free contrib
* Home Page: http://www.java.com
deb-src http://ftp.it.debian.org/debian/ stable main non-free contrib
</pre>


Il repository di apt-build (Rif. 7.1 Pag. [*]):
<pre>
deb file:/var/cache/apt-build/repository apt-build main
</pre>


Un repository 'artigianale' accessibile tramite un webserver:
=== Pacchetti homemade ===
<pre>
In Debian è presente una comoda utility per permettere agli utenti di crearsi i propri pacchetti personalizzati e installarli correttamente all'interno della propria distribuzione, senza sporcare e, soprattutto, potendo gestire il tutto tramite le [[alternatives]] (e quindi avere più JVM installate).
deb http://repos.debianizzati.org ./
</pre>


Un repository situato nella home dell'utente maxer, creato con <code>dpkg-scanpackages</code>:
Il pacchetto in questione è java-package. Sul wiki è presente una guida: [[Make-jpkg: Pacchettizziamo Java]]
<pre>
deb file:/home/maxer/repos ./
</pre>


Per altri repository vedere: [[#Lista repository ufficiali debian|Lista repository ufficiali debian]] e [[Repository non ufficiali]].
== Alternatives ==


----
== Bookmark ==
[[User:MaXeR|MaXeR]]
* [http://www.debian.org/doc/packaging-manuals/java-policy Debian Java Policy]
[[Categoria:Apt]]
* [http://www.debian.org/doc/manuals/debian-java-faq/ Debian Java Faq]
[[Categoria:Repository]]

Versione attuale delle 18:27, 3 nov 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.



Introduzione

Questa guida vuole dare all'utente una visuale il più possibile completa dello stato di Java all'interno di Debian, mostrando le soluzioni possibili per la sua installazione e le alternative, passando per la policy relativa a Java ed alle applicazioni scritte con questo linguaggio.

La Policy Java

Java in Debian

Lo scopo di Debian è quello di fornire una piattaforma costituita al 100% da software libero. Per questa ragione, quindi, alcuni programmi Java non sono disponibili nella distribuzione standard di Debian: non già, certamente, per motivi tecnologici. Al contrario, sono nati diversi progetti collaterali - subito incorporati nel sistema Debian - allo scopo di fornire un'infrastruttura Java, con licenza "libera".

Allo stato attuale Debian rende disponibili le seguenti implementazioni Java:

  • OpenJDK
  • Javacc
  • Gcj

Applicazioni scritte in Java

La policy Debian ammette l'inserimento, all'interno dei repository, di applicazioni scritte in Java. L'unica restrizione è legata all'ambiente in cui può essere compilata ed eseguita. Le applicazioni, infatti, devono girare su una o più JVM presenti in Debian (quindi, prima d'ora, non era possibile trovare nel repository applicazioni che non compilassero e funzionassero con kaffe e le librerie presenti in Debian).

La collocazione dei pacchetti all'interno del repository (main, contrib, non-free) è legata, inoltre, alla licenza del compilatore/JVM, oltre che a quelle delle librerie utilizzate.

Java in Debian

OpenJDK

Javacc

Gcj

Oracle Java

Il Java ufficiale. Non è nè FreeSoftware, nè OpenSource.


Pacchetti homemade

In Debian è presente una comoda utility per permettere agli utenti di crearsi i propri pacchetti personalizzati e installarli correttamente all'interno della propria distribuzione, senza sporcare e, soprattutto, potendo gestire il tutto tramite le alternatives (e quindi avere più JVM installate).

Il pacchetto in questione è java-package. Sul wiki è presente una guida: Make-jpkg: Pacchettizziamo Java

Alternatives

Bookmark