Backport da unstable in testing: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
m (corretti pacchetti necessari, rimossa categoria "Aggiornamento" e correzioni minori)
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Testing_2015}}
{{Versioni compatibili|ONLY|Testing_2016}}
== Introduzione ==
== 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.
A causa delle numerose migrazioni gli utenti di [[testing]] possono trovarsi davanti a qualche problema relativo alla mancanza di pacchetti nel [[repository]] ufficiale Debian.


Ciò è dovuto alla politica di gestione di testing, la quale richiede che un pacchetto debba avere le seguenti caratteristiche, prima di entrare in testing:
Ciò è dovuto alla politica di gestione di testing, la quale richiede che un [[pacchetto]] debba avere le seguenti caratteristiche, prima di entrare in testing:
 
* sia stato in [[unstable]] per almeno 10 giorni (nel caso di priorità bassa (''low''));
* sia stato in [[unstable]] per almeno 10 giorni (nel caso di priorità bassa (''low''));
* non abbia Bug gravi;
* non abbia Bug gravi;
* le dipendenze richieste siano completamente soddisfatte in testing.
* le dipendenze richieste siano completamente soddisfatte in testing.


In questo caso è possibile adattare i pacchetti di Sid per l'uso su [[testing]] (o anche su [[stable]] talvolta) eseguendo la procedura di '''[[backport]]''' illustrata in questa guida.
In questo caso è possibile adattare i pacchetti di Sid per l'uso su [[testing]] (o anche su [[stable]] talvolta) eseguendo la procedura di '''[[backport]]''' illustrata in questa guida, anche se non sempre può essere applicata a causa di dipendenze non risolte: o 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).
 
Questa guida  è utilizzabile prevalentemente per il backport da ''unstable'' a ''testing'', mentre potrebbe dare problemi per il backport da ''testing'' a ''stable''.
 
== Preparazione ==
Per eseguire le operazioni illustrare in questa pagina sono necessari i seguenti pacchetti, normalmente utilizzati per lo sviluppo e l'installazione dei [[pacchetto|pacchetti Debian]]:
* build-essential
* dpkg-dev
* fakeroot
* gdebi-core
 
Per installarli, con [[privilegi di amministrazione]], è sufficiente il comando:
<pre>
# apt-get install build-essential dpkg-dev fakeroot gdebi-core
</pre>
 
== Scaricare i sorgenti ==
=== Con APT ===
Se i [[repository]] dei sorgenti sono abilitati (ossia se sono presenti e non commentate nel proprio <code>/etc/apt/sources.list</code> la riga iniziante con '''<code>deb-src</code>''' relativa a Debian [[Sid]]), è sufficiente utilizzare [[APT]].


== Lo stato di un pacchetto ==
==== Aggiungere i repository sorgenti di Sid ====
È 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:
Se si sono già abilitati i repository sorgenti di Debian [[Sid]] si può saltare questa sezione e passare alla [[#Scaricare il pacchetto sorgente|successiva]]. In caso contrario, se non fossero abilitati, basterebbe eseguire con [[privilegi di amministrazione]]:
* ricavare il pacchetto sorgente da cui viene creato il pacchetto binario in questione:
<pre>
<pre> $ apt-cache show nomepacchetto | grep Source</pre>
# apt edit-sources
* recarsi su http://packages.qa.debian.org ed inserire il nome del pacchetto sorgente
</pre>
* leggere lo stato del pacchetto.
per aggiungere ai repository correnti quello con i sorgenti di Sid con il proprio editor preferito, scrivendo la seguente riga (in questo esempio con [[mirror]] italiano, ma è possibile usarne uno qualsiasi; e con solo la sezione [[main]]):
<pre>
deb-src http://ftp.it.debian.org/debian sid main
</pre>
(scegliendo l'editor [[nano]], premere <code>Ctrl-o</code> per salvare e <code>Ctrl-x</code> per uscire)
 
Infine va aggiornata la lista dei pacchetti:
<pre>
# apt update
</pre>


{{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.}}
Se si utilizzano soltanto i repository dei sorgenti, non sarà nemmeno necessario configurare il [[pinning]]. In caso contrario, se si sono aggiunti i repository di Sid, è '''necessario''' impostare almeno una ''default release'' (per maggiori informazioni si rimanda a [[Repository_%26_pinning#Testing_con_unstable_ed_experimental | questa sezione della guida sul pinning]]).


== Creare i pacchetti binari per la propria distribuzione ==
==== Scaricare il pacchetto sorgente ====
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''.
Per scaricare il sorgente di un pacchetto (per esempio ''nomepacchetto'') basta:
<pre>
$ apt-get source nomepacchetto
</pre>


=== Pacchetti necessari ===
Saranno scaricati gli archivi con i sorgenti originali (<code>''.orig.tar.gz''</code>) e le patch (<code>''.patch.gz''</code>), che saranno estratti in una directory con lo stesso nome, e un file contenente la descrizione  del pacchetto (<code>''.dsc''</code>).
Per eseguire le operazioni illustrare in questa pagina sono necessari i seguenti pacchetti, normalmente utilizzati per lo sviluppo dei pacchetti Debian:
 
* dpkg-dev
=== Manualmente ===
* devscripts
Se non si sono abilitati i sorgenti dei repository di [[Sid]], è possibile anche scaricarli manualmente, senza avvalersi di [[APT]]. Innanzitutto è necessario conoscere lo stato di un pacchetto (per l'esattezza di un pacchetto di sorgenti) tramite il sito della [http://qa.debian.org Quality Assurance]; si procede nel seguente modo:
* fakeroot
* ottenere il pacchetto sorgente da cui viene creato il pacchetto binario in questione, eseguendo: <pre>$ apt-cache show nomepacchetto | grep Source</pre>
* recarsi su [https://tracker.debian.org Debian Package Tracker] ed inserire il nome del pacchetto sorgente;
* leggere lo stato del pacchetto.
 
{{Box|Nota:|è possibile automatizzare la procedura inserendo, nella pagina [https://tracker.debian.org https://tracker.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.}}


=== Scaricare i sorgenti ===
Alla 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:
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:
* l'archivio contenente i sorgenti originali, <code>'''.orig.tar.gz'''</code>;
* l'archivio contenente i sorgenti originali, <code>'''.orig.tar.gz'''</code>;
* l'archivio contenente le patch per creare il pacchetto, <code>'''.patch.gz'''</code>;
* l'archivio contenente le patch per creare il pacchetto, <code>'''.patch.gz'''</code>;
* il file contenente la descrizione del pacchetto, <code>'''.dsc'''</code>
* il file contenente la descrizione del pacchetto, <code>'''.dsc'''</code> .


Una volta scaricati in una unica directory è necessario estrarli:
Una volta scaricati in una unica directory è necessario estrarli:
Riga 40: Riga 72:
</pre>
</pre>


=== Scaricare le dipendenze ===
== Installare le dipendenze per la compilazione ==
Prima di procedere alla compilazione bisogna installare i pacchetti <code>-dev</code> necessari per la compilazione.
Prima di procedere alla compilazione bisogna installare i pacchetti <code>-dev</code> necessari per la compilazione.
Anche in questo caso, come sempre del resto, il sistema di gestione dei pacchetti Debian ci viene in aiuto: basta infatti un semplice:
Anche in questo caso, come sempre del resto, il sistema di gestione dei pacchetti Debian ci viene in aiuto: con [[privilegi di amministrazione]] basta infatti un semplice:
<pre>
<pre>
# apt-get build-dep nomepacchetto
# apt-get build-dep nomepacchetto
Riga 50: Riga 82:
{{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 <code>dpkg-buildpackage</code> 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.}}
{{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 <code>dpkg-buildpackage</code> 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.}}


=== Compilare il pacchetto ===
== Creare i pacchetti deb ==
Una volta installate le dipendenze si può procedere con la compilazione del pacchetto:
Una volta installate le dipendenze si può procedere con la compilazione e la creazione dei pacchetti deb:
* bisogna entrare nella directory dei sorgenti creata durante l'estrazione dei sorgenti;
* 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>
* per far partire la compilazione si può usare il seguente comando:<pre>$ fakeroot dpkg-buildpackage</pre>


Se tutto procede senza problemi verranno creati, nella directory precedente, i pacchetti binari frutto della compilazione. Per installarli è sufficiente il classico
== Installare i pacchetti ==
<pre> # dpkg -i nomepacchetto.....deb</pre>
Se tutto procede senza problemi verranno creati, nella directory precedente, i pacchetti binari frutto della compilazione. Per installarli sarebbe sufficiente utilizzare [[dpkg]], ma è consigliabile utilizzare [[gdebi]], in modo da risolvere prima in automatico le dipendenze dei pacchetti tramite APT, ed essere informati di possibili conflitti prima di alterare il sistema. Con [[privilegi di amministrazione]] basta:
 
<pre>
== Conclusioni ==
# gdebi nomepacchetto.....deb
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 in genere a causa di dipendenze non risolte: o 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).
</pre>


Nel Backport Howto vedremo, più in dettaglio, come eseguire un Backport da ''testing''/''unstable'' verso ''stable''.
== Riferimenti ==
* [https://www.debian.org/doc/manuals/debian-reference/ch02.it.html#_porting_a_package_to_the_stable_system Debian Reference - port di un pacchetto]
* [http://qa.debian.org Debian Quality Assurance]
* [https://tracker.debian.org Debian Package Tracker]


{{Autori
{{Autori
|Autore = [[Utente:MaXeR|MaXeR]]
|Autore = [[Utente:MaXeR|MaXeR]]
|Estesa_da =
|Verificata_da =
: [[Utente:HAL 9000|HAL 9000]] 10:43, 23 apr 2016 (CEST)
|Numero_revisori = 1
}}
}}


[[Categoria:Creare e modificare pacchetti]]
[[Categoria:Creare e modificare pacchetti]]
[[Categoria:Apt]]
[[Categoria:Apt]]
[[Categoria:Aggiornamento]]

Versione attuale delle 08:43, 23 apr 2016

Debian-swirl.png Versioni Compatibili

soltanto:
Debian testing (anno: 2016)

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.

Ciò è dovuto alla politica di gestione di testing, la quale richiede che un pacchetto debba avere le seguenti caratteristiche, prima di entrare in testing:

  • sia stato in unstable per almeno 10 giorni (nel caso di priorità bassa (low));
  • non abbia Bug gravi;
  • le dipendenze richieste siano completamente soddisfatte in testing.

In questo caso è possibile adattare i pacchetti di Sid per l'uso su testing (o anche su stable talvolta) eseguendo la procedura di backport illustrata in questa guida, anche se non sempre può essere applicata a causa di dipendenze non risolte: o 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).

Questa guida è utilizzabile prevalentemente per il backport da unstable a testing, mentre potrebbe dare problemi per il backport da testing a stable.

Preparazione

Per eseguire le operazioni illustrare in questa pagina sono necessari i seguenti pacchetti, normalmente utilizzati per lo sviluppo e l'installazione dei pacchetti Debian:

  • build-essential
  • dpkg-dev
  • fakeroot
  • gdebi-core

Per installarli, con privilegi di amministrazione, è sufficiente il comando:

# apt-get install build-essential dpkg-dev fakeroot gdebi-core

Scaricare i sorgenti

Con APT

Se i repository dei sorgenti sono abilitati (ossia se sono presenti e non commentate nel proprio /etc/apt/sources.list la riga iniziante con deb-src relativa a Debian Sid), è sufficiente utilizzare APT.

Aggiungere i repository sorgenti di Sid

Se si sono già abilitati i repository sorgenti di Debian Sid si può saltare questa sezione e passare alla successiva. In caso contrario, se non fossero abilitati, basterebbe eseguire con privilegi di amministrazione:

# apt edit-sources

per aggiungere ai repository correnti quello con i sorgenti di Sid con il proprio editor preferito, scrivendo la seguente riga (in questo esempio con mirror italiano, ma è possibile usarne uno qualsiasi; e con solo la sezione main):

deb-src http://ftp.it.debian.org/debian sid main

(scegliendo l'editor nano, premere Ctrl-o per salvare e Ctrl-x per uscire)

Infine va aggiornata la lista dei pacchetti:

# apt update

Se si utilizzano soltanto i repository dei sorgenti, non sarà nemmeno necessario configurare il pinning. In caso contrario, se si sono aggiunti i repository di Sid, è necessario impostare almeno una default release (per maggiori informazioni si rimanda a questa sezione della guida sul pinning).

Scaricare il pacchetto sorgente

Per scaricare il sorgente di un pacchetto (per esempio nomepacchetto) basta:

$ apt-get source nomepacchetto

Saranno scaricati gli archivi con i sorgenti originali (.orig.tar.gz) e le patch (.patch.gz), che saranno estratti in una directory con lo stesso nome, e un file contenente la descrizione del pacchetto (.dsc).

Manualmente

Se non si sono abilitati i sorgenti dei repository di Sid, è possibile anche scaricarli manualmente, senza avvalersi di APT. Innanzitutto è necessario conoscere lo stato di un pacchetto (per l'esattezza di un pacchetto di sorgenti) tramite il sito della Quality Assurance; si procede nel seguente modo:

  • ottenere il pacchetto sorgente da cui viene creato il pacchetto binario in questione, eseguendo:
    $ apt-cache show nomepacchetto | grep Source
  • recarsi su Debian Package Tracker ed inserire il nome del pacchetto sorgente;
  • leggere lo stato del pacchetto.
Info.png Nota:
è possibile automatizzare la procedura inserendo, nella pagina https://tracker.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.


Alla 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:

  • l'archivio contenente i sorgenti originali, .orig.tar.gz;
  • l'archivio contenente le patch per creare il pacchetto, .patch.gz;
  • il file contenente la descrizione del pacchetto, .dsc .

Una volta scaricati in una unica directory è necessario estrarli:

$ dpkg-source -x nomepacchetto.....dsc

Installare le dipendenze per la compilazione

Prima di procedere alla compilazione bisogna installare i pacchetti -dev necessari per la compilazione. Anche in questo caso, come sempre del resto, il sistema di gestione dei pacchetti Debian ci viene in aiuto: con privilegi di amministrazione basta infatti un semplice:

# apt-get build-dep nomepacchetto

per installare le dipendenze necessarie alla compilazione.

Info.png 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.


Creare i pacchetti deb

Una volta installate le dipendenze si può procedere con la compilazione e la creazione dei pacchetti deb:

  • bisogna entrare nella directory dei sorgenti creata durante l'estrazione dei sorgenti;
  • per far partire la compilazione si può usare il seguente comando:
    $ fakeroot dpkg-buildpackage

Installare i pacchetti

Se tutto procede senza problemi verranno creati, nella directory precedente, i pacchetti binari frutto della compilazione. Per installarli sarebbe sufficiente utilizzare dpkg, ma è consigliabile utilizzare gdebi, in modo da risolvere prima in automatico le dipendenze dei pacchetti tramite APT, ed essere informati di possibili conflitti prima di alterare il sistema. Con privilegi di amministrazione basta:

# gdebi nomepacchetto.....deb

Riferimenti




Guida scritta da: MaXeR Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
HAL 9000 10:43, 23 apr 2016 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized