Backport da unstable in testing: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
{{debianized}}
=Introduzione=
A causa delle numerose migrazioni gli utenti di testing possono trovarsi davanti a qualche problema relativo alla mancanza di pacchetti nel repository ufficiale Debian...


==Introduzione==
Questo è dovuto alla politica di gestione di testing, la quale richiede che un pacchetto debba avere le seguenti caratteristiche, prima di entrare in testing:
Spesso, per vari motivi, � necessario installare Java su una macchina Debian...
* Sia stato in unstable per almeno 10 giorni (nel caso di priorità bassa (''low''));
Sicuramente tutti gli utenti avranno notato che non c'�, nel repository ufficiale, un pacchetto contenente j2se o j2dk ufficiali della SUN.
* Non abbia Bug gravi;
Sono, invece, presenti i compilatori alternativi, come gcj, kaffe, kjc, javacc....
* Le dipendenze richieste siano completamente soddisfatte in testing.
Per�, se volessimo avere il compilatore e/o l'interprete 'originale' della SUN? come possiamo fare?


Il primo modo che salta agli occhi � di installarlo in /opt e poi sistemare il $PATH...ma la soluzione, giustamente, non piace a tutti, in quanto 'sporca' il sistema e, cosa che crea parecchi problemi, genera dei problemi con le dipendenze dei pacchetti, visto che molti dei pacchetti che richiedono java per funzionare non lo trovano installato.
=Lo stato di un pacchetto=
È possibile conoscere lo stato di un pacchetto (per l'esattezza di un pacchetto di sorgenti) tramite il sito della [http://qa.debian.org Quality Assurance], nel seguente modo:
* ricavare il pacchetto sorgente da cui viene creato il pacchetto binario in questione:
<pre> $ apt-cache show nomepacchetto | grep Source</pre>
* recarsi su http://packages.qa.debian.org ed inserire il nome del pacchetto sorgente
* leggere lo stato del pacchetto!


In questo HowTo vedremo come pacchettizzare Java, usando direttamente il binario di installazione disponibile sul sito della Sun!
{{Box|Nota:|è possibile automatizzare la procedura inserendo, nella pagina http://packages.qa.debian.org, il nome del pacchetto binario... il sistema mostrerà il nome del pacchetto di sorgenti relativo ed in 10 secondi reindirizzerà alla pagina relativa al suo stato.}}


==Cosa ci occorre==
=Creare i pacchetti binari per la propria distribuzione=
Provvediamo a scaricare i pacchetti java-package e fakeroot.
Premetto che la seguente procedura è utilizzabile prevalentemente per il backport da ''unstable'' a ''testing'', mentre potrebbe dare problemi per il backport da ''testing'' a ''stable''.
<pre>
# apt-get install java-package fakeroot
</pre>


E poi scarichiamo il jdk o jre dal sito ufficiale Sun:<br(>
==Pacchetti necessari==
1.5: http://java.sun.com/j2se/1.5.0/download.jsp<br/>
Per eseguire le operazioni illustrare in questa pagina sono necessari i seguenti pacchetti, normalmente utilizzati per lo sviluppo dei pacchetti Debian:
1.4: http://java.sun.com/j2se/1.4.2/download.html
* dpkg-dev
* devscripts
* fakeroot


Una volta terminato il download, saremo pronti per proseguire.
==Scaricare i sorgenti==
 
Dalla pagina relativa allo stato del pacchetto è possibile scaricare i sorgenti necessari per questo backport (nel riquadro '''Source files'''). I file sono, per l'esattezza, 3:
==Creazione del Pacchetto==
* l'archivio contenente i sorgenti originali, '''.orig.tar.gz'''
 
* l'archivio contenente le patch per creare il pacchetto, '''.patch.gz'''
Bene, siamo pronti a creare il pacchetto!!!
* il file contenente la descrizione del pacchetto, '''.dsc'''
Posizioniamoci nella directory dove sono stati scaricati i binari di java e, da utente normale, diamo il seguente comando:
<pre>
$ fakeroot make-jpkg jdk-1_5_0_01-linux-i586.bin
</pre>
(o il nome del pacchetto scaricato...in questo caso ho pacchettizzato il jdk 1.5.0)
al comando '''make-jpkg''' � possibile passare i seguenti parametri:<br/>
; --full-name <name> : Nome del Maintainer<br/>
; --email <email> : Email del Maintainer<br/>
; --changes : Indica che il processo deve creare un file .changes<br/>
; --help : Visualizza un piccolo help contenente i comandi qui illustrati<br/>
; --version : Stampa a video la versione
 
Una volta terminato il processo di generazione del pacchetto, provvediamo a fare quanto segue:
<pre>
$ su
# dpkg -i sun-j2sdk1.5_1.5.0+update01_i386.deb
</pre>


Ovviamente sostituendo 'sun-j2sdk1.5_1.5.0+update01_i386.deb' con il nome del pacchetto appena creato!
Una volta scaricati in una unica directory è necessario estrarli:
Se ci sono problemi, relativamente ad una dipendenza con un nome simile a 'sun-j2sdk1.5debian', � possibile sistemare tutto con il comando
<pre>
<pre>
# apt-get install sun-j2sdk1.5debian
$ dpkg-source -x nomepacchetto.....dsc
</pre>
</pre>


Ora non ci resta che sistemare una ultima cosa: '''alternatives'''
==Scaricare le dipendenze==
(se precedentemente era stato installato un pacchetto non ufficiale di java)
Prima di procedere alla compilazione è necessario installare i pacchetti ''-dev'' necessari per la compilazione...
Date il comando
Anche in questo caso, come sempre del resto, il sistema di gestione dei pacchetti Debian ci viene in aiuto: è infatti necessario un semplice
<pre>
<pre>
# update-alternatives --config java
# apt-get build-dep nomepacchetto
</pre>
</pre>
(uguale procedimento anche per javac, javadoc ed eventualmente altri eseguibili java)
per installare le dipendenze necessarie alla compilazione.
e selezionate 'quale java' utilizzare!


==Conclusioni==
{{Box|Nota:|il comando potrebbe non risolvere tutte le dipendenze (nel peggiore dei casi potrebbe non trovare informazioni riguardo a queste). In questo caso, quindi, bisognerà installarle a mano. Le dipendenze mancanti verranno mostrate nell'output di ''dpkg-buildpackage'' e dovranno essere installate come viene installato normalmente un pacchetto. Non sarà possibile continuare nel processo di compilazione se non si soddisfano tutte le dipendenze di compilazione.}}


Con questi pochi e semplici passaggi, abbiamo installato java senza sporcare il sistema, e risolvendo il problema delle dipendenze!
==Compilare il pacchetto==
Una volta installate le dipendenze si può procedere con la compilazione del pacchetto:
* bisogna entrare nella directory dei sorgenti creata durante l'estrazione dei sorgenti;
* per far partire la compilazione si può usare il seguente comando: <pre>$ fakeroot dpkg-buildpackage</pre>


Buon Java a tutti!!!
Se tutto procede senza problemi verranno creati, nella directory precedente, i pacchetti binari frutto della compilazione... per installarli è sufficiente il classico
<pre> # dpkg -i nomepacchetto.....deb</pre>


=Conclusioni=
Questo rappresenta il metodo più semplice per ottenere un pacchetto per testing partendo da un pacchetto sorgente di unstable, anche se non sempre può essere applicato (a causa di dipendenze non risolte perchè non presenti in testing (in questo caso è necessario partire dal backporting delle librerie mancanti) o perchè le versioni dei pacchetti in testing non sono abbastanza aggiornate per concludere con successo la compilazione (evento molto raro)).


---- [[User:MaXeR|MaXeR]]
Nel Backport Howto vedremo, più in dettaglio, come eseguire un Backport da ''testing''/''unstable'' verso ''stable''...


[[Categoria:Apt]]
[[Categoria:Apt]]
[[Categoria:Apt-Dev]]
[[Categoria:Apt-Dev]]
37

contributi

Menu di navigazione