3 155
contributi
Wtf (discussione | contributi) mNessun oggetto della modifica |
Wtf (discussione | contributi) |
||
Riga 128: | Riga 128: | ||
Il concetto di priorità viene gestito attraverso l'assegnazione di un punteggio ai vari pacchetti, sia installati che ancora da installare. Valgono le seguenti regole: | Il concetto di priorità viene gestito attraverso l'assegnazione di un punteggio ai vari pacchetti, sia installati che ancora da installare. Valgono le seguenti regole: | ||
* ''' | * priorità '''100''' alla versione dei pacchetti già installati. | ||
* ''' | * priorità '''500''' alle versioni che non sono installate e non appartengono alla distribuzione obiettivo, dove con quest'ultimo termine si deve intendere "Default Release", "Target Release". | ||
* ''' | * priorità '''990''' alle versioni che non sono installate e appartengono alla distribuzione obiettivo. | ||
Piccolo esempio teorico. Si supponga quanto segue: | Piccolo esempio teorico. Si supponga quanto segue: | ||
Riga 151: | Riga 151: | ||
* Pin '''minore di 0''' (negativo), l’installazione del candidato è impedita a priori (salvo apposito comando). | * Pin '''minore di 0''' (negativo), l’installazione del candidato è impedita a priori (salvo apposito comando). | ||
* Pin compreso ''' | * Pin compreso tra '''1 e 99''', il candidato sarà installato solo se sono verificate entrambe le seguenti due condizioni: primo non esistono candidati appartenenti ad altre distribuzioni, secondo nel sistema non è già installata una versione (anche inferiore) del candidato. | ||
* Pin compreso tra 100 e 499, il candidato sarà installato solo se non esistono candidati appartenenti ad altre distribuzioni e se la versione eventualmente già installata non è superiore a quella del candidato. | * Pin compreso tra '''100 e 499''', il candidato sarà installato solo se non esistono candidati appartenenti ad altre distribuzioni e se la versione eventualmente già installata non è superiore a quella del candidato. | ||
* Pin compreso ''' | * Pin compreso tra '''500 e 989''', il candidato sarà installato solo se non esistono candidati appartenenti alla distribuzione obiettivo e se la versione eventualmente già installata non è superiore a quella del candidato. Si noti che il semplice fatto di aver installato una certa distribuzione, per esempio testing, non significa aver definito la distribuzione obiettivo, che può essere solo definita manualmente dall'utente (il come sarà spiegato nella discussione del file <code>apt.conf</code>). | ||
* Pin compreso tra '''990 e 999''', il candidato sarà installato solo se non esistono altri candidati con pin maggiore e se la versione eventualmente già installata non è superiore a quella del candidato. | * Pin compreso tra '''990 e 999''', il candidato sarà installato solo se non esistono altri candidati con pin maggiore e se la versione eventualmente già installata non è superiore a quella del candidato. | ||
* Pin '''1000 | * Pin '''1000''' o superiore, il candidato sarà installato se non esistono altri candidati con pin maggiore, è quindi possibile la retrocessione di versione (downgrade) se la versione eventualmente già installata è superiore a quella del candidato. Es. è possibile installare la versione 1.1 di un pacchetto anche se ad essere già installata è la 1.2 o superiore. | ||
== /etc/apt/apt.conf == | == /etc/apt/apt.conf == | ||
Riga 169: | Riga 169: | ||
Si noti inoltre che: | Si noti inoltre che: | ||
* | * Le dichiarazioni di parametri da riga di comando hanno sempre la precedenza su quelli definiti in un file di configurazione, quindi usare un comando del tipo <code>apt-get install pacchetto -t distribuzione_taldeitali</code> sorpassa qualunque distribuzione obiettivo (''Default-Release'') dichiarata nel file <code>apt.conf</code>. | ||
* Comandi del tipo <code>apt-get install pacchetto/distribuzione_taldeitali</code> non cambiano la ''target release'', ma si limitano a dire di prelevare lo specifico pacchetto dalla distribuzione indicata invece che da quella predefinita. Questo implica che le dipendenze continueranno ad essere risolte in base al valore specificato in <code>apt.conf</code> o in caso contrario in base al file preferences o all'algoritmo predefinito. | |||
* Definire una distribuzione obiettivo in <code>apt.conf</code> è equivalente a dichiarare in <code>preferences</code> (si veda la prossima sezione) quanto segue | * Definire una distribuzione obiettivo in <code>apt.conf</code> è equivalente a dichiarare in <code>preferences</code> (si veda la prossima sezione) quanto segue | ||
<pre> | <pre> | ||
Riga 189: | Riga 190: | ||
</pre> | </pre> | ||
== | == /etc/apt/preferences == | ||
Questo è il file dove è possibile definire tutte le priorità che si vogliono, fermo restando quanto detto nella sezione dedicata ad <code>apt.conf</code>. La sintassi generale è la seguente: | |||
<pre> | |||
Package: nome pacchetto o espressione regolare | |||
Pin: parametro da usare per identificare la versione desiderata | |||
Pin-Priority: numero | |||
</pre> | |||
Un paio di esempi del tutto arbitrari: | |||
<pre> | <pre> | ||
Package: | Package: vlc | ||
Pin: release a=testing | Pin: release a=testing | ||
Pin-Priority: | Pin-Priority: 991 | ||
Package: * | Package: virtualbox4* | ||
Pin: | Pin: Release o=Oracle Corporation | ||
Pin-Priority: | Pin-Priority: 780 | ||
</pre> | </pre> | ||
Nel primo esempio si è definito il pinning per il pacchetto di nome "vlc", richiedendo che le versioni appartenenti alla distribuzione testing abbiano priorità 991. Nel secondo invece sfruttando una semplicissima espressione regolare si impone che tutti i pacchetti il cui nome inizia per "virtualbox4" e appartenenti al repository la cui origine è definita come "Oracle Corporation" abbiano priorità 780. | |||
== Installare pacchetti di differenti versioni == | == Installare pacchetti di differenti versioni == | ||
Fatto questo, sarà sufficiente aggiungere al proprio ''/etc/apt/sources.list'' i repository delle altre versioni che ci interessano. | Fatto questo, sarà sufficiente aggiungere al proprio ''/etc/apt/sources.list'' i repository delle altre versioni che ci interessano. | ||
Per installare pacchetti dalla nostra versione in uso, quella che abbiamo anche specificato in ''apt.conf'', procederemo normalmente, come abbiamo sempre fatto. Per pacchetti di altre versioni, invece, avremo a disposizione due comandi: | Per installare pacchetti dalla nostra versione in uso, quella che abbiamo anche specificato in ''apt.conf'', procederemo normalmente, come abbiamo sempre fatto. Per pacchetti di altre versioni, invece, avremo a disposizione due comandi: |
contributi