317
contributi
m (→REPOSITORY) |
|||
Riga 188: | Riga 188: | ||
Abbiamo visto come poter avere una Debian Stable, Testing o Unstable adattando i repository all'uopo. Però, usando una Stable o una Testing potrebbe nascere l'esigenza di bloccare un pacchetto o volerlo aggiornare ad una versione che si trova in un ramo superiore senza compromettere la stabilità e la funzionalità della versione che si sta utilizzando o addirittura fare un downgrade di un pacchetto o dell'intera versione (caso molto delicato). Per far ciò Debian utilizza un meccanismo molto sofisticato, chiamato ''pinning'', che permette di assegnare ai vari pacchetti una priorità per l'installazione indipendentemente dal ramo o versione di cui fanno parte (stable, testing, unstable, experimental).<br /> | Abbiamo visto come poter avere una Debian Stable, Testing o Unstable adattando i repository all'uopo. Però, usando una Stable o una Testing potrebbe nascere l'esigenza di bloccare un pacchetto o volerlo aggiornare ad una versione che si trova in un ramo superiore senza compromettere la stabilità e la funzionalità della versione che si sta utilizzando o addirittura fare un downgrade di un pacchetto o dell'intera versione (caso molto delicato). Per far ciò Debian utilizza un meccanismo molto sofisticato, chiamato ''pinning'', che permette di assegnare ai vari pacchetti una priorità per l'installazione indipendentemente dal ramo o versione di cui fanno parte (stable, testing, unstable, experimental).<br /> | ||
Per far ciò bisogna agire su due file:< | Per far ciò bisogna agire su due file: <code>/etc/apt/apt.conf</code> e <code>/etc/apt/preferences</code><br /> | ||
<br/> | |||
Di norma questi due file non sono presenti dopo un'installazione, quindi bisogna crearli ex-novo utilizzando un editor di testo.<br/> | |||
<br /> | <br/> | ||
Di norma questi due file non sono presenti dopo un'installazione, quindi bisogna crearli ex-novo utilizzando un editor di testo.<br /> | |||
<br /> | |||
Cosa si andrà a scrivere in questi due file? Cercheremo di inserire alcune funzioni base, per aver un minimo di funzionalità. | Cosa si andrà a scrivere in questi due file? Cercheremo di inserire alcune funzioni base, per aver un minimo di funzionalità. | ||
{{ Warningbox | considerata la complessità dell'argomento, questo mini how-to ha il solo scopo all'introduzione di questa utility, per un uso avanzato far riferimento a | {{ Warningbox | considerata la complessità dell'argomento, questo mini how-to ha il solo scopo all'introduzione di questa utility, per un uso avanzato far riferimento a [http://manpages.debian.net/man/5/apt_preferences man apt.conf] }} | ||
In '''/etc/apt/apt.conf''' si daranno le indicazioni: | |||
- della versione che si vuole utilizzare come default (stable)<br> | |||
- della dimensione della cache<br> | |||
- del purge dei pacchetti<br> | |||
- della pulizia della cache<br> | |||
- del fix dei pacchetti rotti (causa dipendenze non soddisfatte)<br> | |||
- del fix dei pacchetti non possibili da installare<br> | |||
- di mostrare gli upgrade dei pacchetti<br> | |||
- di forzare il loop dei pacchetti rotti (causa dipendenze non soddisfatte)<br> | |||
- di permettere l'installazione di pacchetti non autenticati (manca la chiave pubblica)<br> | |||
quindi il file sarà come segue | |||
<pre> | <pre> | ||
APT::Default-Release "stable"; | APT::Default-Release "stable"; | ||
Riga 247: | Riga 232: | ||
'''/etc/apt/preferences''' | '''/etc/apt/preferences''' | ||
Prima di vedere la sintassi per strutturare il file cerchiamo di capire il valore che la policy Debian assegna ad un singolo pacchetto o alla release (stable o testing) in generale:<br /> | Prima di vedere la sintassi per strutturare il file cerchiamo di capire il valore che la policy Debian assegna ad un singolo pacchetto o alla release (stable o testing) in generale:<br/> | ||
<br /> | <br/> | ||
PIN | '''Valore del PIN:'''<br/> | ||
<br /> | - superiore a '''1000''' ha l'assoluta priorità nell'installazione può implicare il downgrade<br/> | ||
superiore a '''1000''' ha l'assoluta priorità nell'installazione può implicare il downgrade<br /> | - da '''991 a 1000''' il pacchetto verrà installato anche se non fa parte della release (specificata in apt.conf), a meno che la versione installata sia più recente<br/> | ||
- da '''551 a 990''' il pacchetto verrà installato a meno che ci sia disponibile una versione che fa parte della release (specificata in apt.conf) o che la versione installata sia più recente<br/> | |||
da '''991 a 1000''' il pacchetto verrà installato anche se non fa parte della release (specificata in apt.conf), a meno che la versione installata sia più recente<br /> | - da '''101 a 550''' il pacchetto verrà installato a meno che ci sia disponibile una versione appartenente a qualsiasi release o che la versione installata sia più recente<br/> | ||
- da '''0 a 100''' il pacchetto viene installato solo se non è installata nessuna versione del pacchetto<br/> | |||
da '''551 a 990''' il pacchetto verrà installato a meno che ci sia disponibile una versione che fa parte della release (specificata in apt.conf) o che la versione installata sia più recente<br /> | - minore di '''0''' previene l'installazione del pacchetto, qualsiasi sia l'origine<br/> | ||
<br/> | |||
da '''101 a 550''' il pacchetto verrà installato a meno che ci sia disponibile una versione appartenente a qualsiasi release o che la versione installata sia più recente<br /> | Avendo visto il valore del PIN possiamo adattare il nostro file ''/etc/apt/preferences'' ai nostri bisogni, bloccando o retrocedendo oppure aggiornando i vari pacchetti. Da tenere in considerazione che se usiamo una stable ed installiamo un pacchetto da testing o unstable non avremo più la garanzia che essa ci offre.<br/> | ||
<br/> | |||
da '''0 a 100''' il pacchetto viene installato solo se non è installata nessuna versione del pacchetto<br /> | <br/> | ||
Qualche esempio pratico<br/> | |||
minore di '''0''' previene l'installazione del pacchetto, qualsiasi sia l'origine | <br/> | ||
<br /> | Fondamentale aver creato il file '''/etc/apt/apt.conf''' (dove avremo specificato la nostra release preferita: stable o testing) e aver abilitato tutti i repository delle diverse release in '''/etc/apt/sources.list''' | ||
<br /> | |||
Avendo visto il valore del PIN possiamo adattare il nostro file ''/etc/apt/preferences'' ai nostri bisogni, bloccando o retrocedendo oppure aggiornando i vari pacchetti. Da tenere in considerazione che se usiamo una stable ed installiamo un pacchetto da testing o unstable non avremo più la garanzia che essa ci offre.<br /> | |||
<br /> | |||
<br /> | |||
Qualche esempio pratico<br /> | |||
<br /> | |||
Fondamentale aver creato il file '''/etc/apt/apt.conf''' (dove avremo specificato la nostra release preferita: stable o testing) e aver abilitato tutti i | |||
<pre>deb http://ftp.it.debian.org/debian/ stable main contrib non-free | <pre> | ||
deb http://ftp.it.debian.org/debian/ stable main contrib non-free | |||
deb http:// | deb http://www.deb-multimedia.org stable main non-free | ||
deb http:// | deb http://ftp.it.debian.org/debian/ stable-backports main contrib non-free | ||
deb http://security.debian.org/ | deb http://security.debian.org/ stable/updates main contrib non-free | ||
deb http:// | deb http://ftp.it.debian.org/debian/ stable-updates main contrib non-free | ||
deb http://ftp.it.debian.org/debian/ testing main contrib non-free | deb http://ftp.it.debian.org/debian/ testing main contrib non-free | ||
deb http:// | deb http://www.deb-multimedia.org stable main non-free | ||
deb http://ftp.it.debian.org/debian/ unstable main contrib non-free | deb http://ftp.it.debian.org/debian/ unstable main contrib non-free | ||
deb http:// | deb http://www.deb-multimedia.org unstable main non-free | ||
</pre> | |||
Ovviamente chi usa Testing può omettere i repository della Stable.<br /> | Ovviamente chi usa Testing può omettere i repository della Stable.<br/> | ||
<br /> | <br/> | ||
<br /> | <br/> | ||
Ora possiamo vedere la policy Debian riguardo alle release: | Ora possiamo vedere la policy Debian riguardo alle release: | ||
Riga 308: | Riga 288: | ||
<pre> | <pre> | ||
Package: * | |||
Pin: release a=stable | |||
Pin-Priority: 900 | |||
Package: * | |||
Pin: release o=Debian | |||
Pin-Priority: -10 | |||
</pre> | |||
Cerchiamo di capire il significato delle tre righe | Cerchiamo di capire il significato delle tre righe: | ||
'''Package: *''' vuol dire tutti i pacchetti<br> | |||
'''Pin: release a=stable''' tutti i pacchetti della release stable<br> | |||
'''Pin-Priority: 900''' verranno installati solo pacchetti più aggiornati della stessa release (se ce ne sono)<br> | |||
<br> | |||
mentre<br> | |||
'''Package: *''' vuol dire tutti i pacchetti<br> | |||
'''Pin: release o=Debian''' (other) pacchetti di altre release<br> | |||
'''Pin-Priority: -10''' nessuna priorità<br> | |||
<br> | |||
In questo caso verranno installati solo pacchetti più aggiornati della stessa release (se ce ne sono) e nessun altro pacchetto di release diverse verrà installato.<br/> | |||
Pin: release o=Debian | |||
Pin-Priority: -10 nessuna priorità< | |||
In questo caso verranno installati solo pacchetti più aggiornati della stessa release (se ce ne sono) e nessun altro pacchetto di release diverse verrà installato.<br /> | |||
Se si vuole installare un pacchetto proveniente dalla release Testing si possono usare due comandi: | Se si vuole installare un pacchetto proveniente dalla release Testing si possono usare due comandi: | ||
Riga 341: | Riga 318: | ||
<pre>apt-get install -t testing nome_pacchetto</pre> | <pre>apt-get install -t testing nome_pacchetto</pre> | ||
''(installerà il pacchetto con le dipendenze della release testing. Il pacchetto non verrà più aggiornato fino a quando non ridaremo lo stesso comando)''<br /> | ''(installerà il pacchetto con le dipendenze della release testing. Il pacchetto non verrà più aggiornato fino a quando non ridaremo lo stesso comando)''<br/> | ||
<br /> | <br/> | ||
{{ Warningbox | Considerata la stabilità della release Stable | {{ Warningbox | Considerata la stabilità della release Stable, usare pacchetti di altre release potrebbe comprometterne la stabilità. Per avere una perfetta integrazione con Stable meglio usare il pinning con i pacchetti provenienti dai backports }} | ||
perfetta integrazione con Stable meglio usare il pinning con i pacchetti provenienti dai backports }} | |||
Se, ad esempio, volessimo installare la versione più recente di '' | Se, ad esempio, volessimo installare la versione più recente di ''libreoffice'' dai ''backports'': | ||
<pre>apt-get -t | <pre>apt-get -t stable-backports install libreoffice</pre> | ||
per evitare che nei prossimi upgrades il pacchetto venga retrocesso alla versione della ''Stable'' nel file preferences aggiungere | per evitare che nei prossimi upgrades il pacchetto venga retrocesso alla versione della ''Stable'' nel file preferences aggiungere: | ||
<pre>Package: | <pre>Package: libreoffice | ||
Pin: release a= | Pin: release a=stable-backports | ||
Pin-Priority: 999</pre> | Pin-Priority: 999</pre> | ||
In questo modo rimarrà installata la versione del Backports.<br /> | In questo modo rimarrà installata la versione del Backports.<br/> | ||
<br /> | <br/> | ||
Come detto precedentemente in questa maniera possiamo fare il downgrade sia di un pacchetto o dell'intera release, basta agire sul file preferences indicando il pacchetto o la release modificando il Pin-Priority.<br /> | Come detto precedentemente in questa maniera possiamo fare il downgrade sia di un pacchetto o dell'intera release, basta agire sul file preferences indicando il pacchetto o la release modificando il Pin-Priority.<br/> | ||
Vediamo qualche esmpio concreto.<br /> | Vediamo qualche esmpio concreto.<br/> | ||
<br /> | <br/> | ||
''ES. | ''ES. n° 1'' voglio il ''pacchetto-1.0.1'' indipendentemente dalla release che utilizzo | ||
<pre>Package: pacchetto | <pre> | ||
Package: pacchetto | |||
Pin: version 1.0.1 | Pin: version 1.0.1 | ||
Pin-Priority: 1001</pre> | Pin-Priority: 1001 | ||
</pre> | |||
in questo modo ''pacchetto'' versione ''1.0.1'' non verrà mai scalzato né da una versione più recente né da una più vecchia (in caso di downgrade).<br /> | in questo modo ''pacchetto'' versione ''1.0.1'' non verrà mai scalzato né da una versione più recente né da una più vecchia (in caso di downgrade).<br/> | ||
<br /> | <br/> | ||
''ES. | ''ES. n° 2'' fare il downgrade di una release (questo passaggio è molto delicato, usatelo con cautela): | ||
<pre> | |||
Package: * | |||
Pin: release a=stable | |||
Pin-Priority: 1001 | |||
Package: * | |||
Pin: release o=Debian | |||
Pin-Priority: -10 | |||
</pre> | |||
in questo modo basta | in questo modo basta | ||
Riga 395: | Riga 373: | ||
=== TESTING === | === TESTING === | ||
Se si sta utilizzando Testing | Se si sta utilizzando Testing e si ha l'esigenza di installare un pacchetto da Unstable o Experimental (usare con molta cautela), come visto sopra creiamo i due files '''/etc/apt/apt.conf''' e '''/etc/apt/preferences''' come segue:<br/> | ||
<br /> | <br/> | ||
'''/etc/apt/apt.conf''' | '''/etc/apt/apt.conf''' | ||
<pre> | <pre> | ||
Riga 421: | Riga 399: | ||
'''/etc/apt/preferences''' | '''/etc/apt/preferences''' | ||
<pre> | <pre> | ||
Package: * | |||
Pin: release a=testing | |||
Pin-Priority: 800 | |||
Package: * | |||
Pin: release a=unstable | |||
Pin-Priority: 600 | |||
Package: * | |||
Pin: release a=experimental | |||
Pin-Priority: 50 | |||
Package: * | |||
Pin: release o=Debian | |||
Pin-Priority: -10 | |||
</pre> | |||
Questo farà in modo che apt installi di default i pacchetti provenienti dalla release ''Testing''.<br /> | Questo farà in modo che apt installi di default i pacchetti provenienti dalla release ''Testing''.<br/> | ||
Se si vogliono installare pacchetti provenienti da ''Unstable'' o ''Experimental'': | Se si vogliono installare pacchetti provenienti da ''Unstable'' o ''Experimental'': | ||
Riga 447: | Riga 426: | ||
''questo installerà il pacchetto con le dipendenze della release unstable''<br /> | ''questo installerà il pacchetto con le dipendenze della release unstable''<br /> | ||
<br /> | <br/> | ||
Per quanto riguarda il mantenimento o il downgrade di un pacchetto specifico operare come indicato sopra nella sezione STABLE. | Per quanto riguarda il mantenimento o il downgrade di un pacchetto specifico operare come indicato sopra nella sezione STABLE. | ||
[[Categoria:E-zine]] | [[Categoria:E-zine]] |
contributi