Repository & pinning: differenze tra le versioni

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: <code>/etc/apt/apt.conf</code> e <code>/etc/apt/preferences</code><br />
Per far ciò è possibile agire su uno o entrambi i seguenti due file testuali: <code>/etc/apt/apt.conf</code> e <code>/etc/apt/preferences</code>. Di norma questi due file non sono presenti dopo un'installazione, è pertanto l'utente a doverli creare ex-novo utilizzando un qualsiasi editor di testo.<br/>
<br/>
Si noti che entrambi i file devono essere definiti secondo precise regole e direttive di cui si mostreranno solo alcuni elementi base, giusto per aver un minimo di funzionalità.
Di norma questi due file non sono presenti dopo un'installazione, quindi bisogna crearli ex-novo utilizzando un editor di testo.<br/>
 
<br/>
{{ 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.conf man apt.conf] e [http://manpages.debian.net/man/5/apt_preferences man apt_preferences]}}
Cosa si andrà a scrivere in questi due file? Cercheremo di inserire alcune funzioni base, per aver un minimo di funzionalità.
 
=== /etc/apt/apt.conf ===
 
Delle innumerevoli direttive che è possibile dichiarare solo la seguente interessa la procedura di pinning
 
<pre>APT::Default-Release</pre>
 
ad esempio
 
<pre>APT::Default-Release "stable"; </pre>
 
impone ad apt di considerare la release stable come release di riferimento, attribuendogli un punteggio di 990 (si veda più avanti per una spiegazione del significato dei vari punteggi).


{{ 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] }}
{{Box|Nota|Per quanto riguarda tutti i pacchetti della release target questa dichiarazione ha la precedenza su qualsiasi altra generica priorità definita nel file ''preferences'', ad eccezione di quei pacchetti per ciascuno dei quali sia stata definita una specifica priorità.}}


In '''/etc/apt/apt.conf''' si daranno le indicazioni:
Premesso questo in </code>/etc/apt/apt.conf</code> si daranno le seguenti indicazioni:


- della versione che si vuole utilizzare come default (stable)<br>
- della versione che si vuole utilizzare come default (stable)<br>
Riga 208: Riga 219:
- di permettere l'installazione di pacchetti non autenticati (manca la chiave pubblica)<br>
- di permettere l'installazione di pacchetti non autenticati (manca la chiave pubblica)<br>


quindi il file sarà come segue
quindi il file <code>preferences</code> apparirà come segue


<pre>
<pre>
Riga 229: Riga 240:
   APT::Get::AllowUnauthenticated 1;</pre>
   APT::Get::AllowUnauthenticated 1;</pre>


{{Box|Nota|L'utente può, invece di creare un unico file di nome ''apt.conf'', creare più file di nome arbitrario in ''/etc/apt/apt.conf.d/'' (si veda il manuale)}}.


'''/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/>
Riga 242: Riga 254:
- minore di '''0''' previene l'installazione del pacchetto, qualsiasi sia l'origine<br/>
- minore di '''0''' previene l'installazione del pacchetto, qualsiasi sia l'origine<br/>
<br/>
<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/>
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/>
 
<br/>
{{Box|Nota|Similmente al caso precedente è possibile creare più file di nome arbitrario in ''/etc/apt/apt.preferences.d/'' invece di creare un unico file di nome ''preferences'',  (si veda il manuale).}}
Qualche esempio pratico<br/>
 
Qualche esempio pratico.<br/>
<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'''
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'''
Riga 271: Riga 284:


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/>
Ora possiamo vedere la policy Debian riguardo alle release:
Ora possiamo vedere la policy Debian riguardo alle release:
3 155

contributi