Repository & pinning: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
task Revisione Wiki #61
m (→‎Comandi utili: aggiunto apt-show-versions)
(task Revisione Wiki #61)
Riga 89: Riga 89:


{{Warningbox|
{{Warningbox|
* Tale priorità si applica alla release e non alla fonte, quindi ad ottenere la suddetta priorità non saranno solo i pacchetti appartenenti al repository principale (o ai due repository principali), ma anche quelli provenienti da altre fonti se il gestore di tale repository usa lo stesso valore per i parametri [[suite]] e [[codename]] di quelli principali, ad esempio ''stable'' e ''jessie''.
* Tale priorità si applica alla release e non alla fonte, quindi ad ottenere la suddetta priorità non saranno solo i pacchetti appartenenti al repository principale (o ai due repository principali), ma anche quelli provenienti da altre fonti se il gestore di tale repository usa lo stesso valore per i parametri [[suite]] e [[codename]] di quelli principali, ad esempio ''stable'' e ''{{Codename|stable}}''.
* Questa direttiva influenza la priorità del repository principale di una release, nonché di quella relativa alla sua sicurezza, per esempio:
* Questa direttiva influenza la priorità del repository principale di una release, nonché di quella relativa alla sua sicurezza, per esempio:
** <code>deb http://ftp.it.debian.org/debian/ jessie main</code>
** <code>deb <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}} main</code>
** <code>deb http://security.debian.org/ jessie/updates main</code>
** <code>deb <nowiki>http://security.debian.org/</nowiki> {{Codename|stable}}/updates main</code>
}}
}}


Riga 110: Riga 110:


Un po' di esempi del tutto arbitrari:
Un po' di esempi del tutto arbitrari:
<pre>
 
Package: vlc
Package: vlc
Pin: release a=testing
Pin: release a=testing
Pin-Priority: 991
Pin-Priority: 991
</pre>
 
<pre>
Package: vlc
Package: vlc
Pin: release n={{Codename|testing}}
Pin: release n=stretch
Pin-Priority: 991
Pin-Priority: 991
 
</pre>
Package: virtualbox4*
<pre>
Pin: Release o=Oracle Corporation
Package: virtualbox4*
Pin-Priority: 780
Pin: Release o=Oracle Corporation
 
Pin-Priority: 780
Il primo e il secondo esempio sono equivalenti, il primo fa riferimento alla [[suite]] (detta anche '''''a'''rchive'') mentre il secondo al [[codename]] ('''''n'''ome in codice''). In entrambi si è definito il pinning per il pacchetto di nome "vlc", richiedendo che le versioni appartenenti alla release testing, attualmente [[{{Codename|Testing}}]], abbiano priorità 991. Attenzione però che quando {{Codename|Testing}} diverrà la nuova [[stable]], il primo si applicherà alla nuova testing mentre il secondo continuerà a far riferimento a {{Codename|Testing}}. Solitamente è consigliabile il secondo (con ''codename''), se si utilizza una stable e si vogliono prelevare pacchetti da testing, mentre il primo (con ''suite'') se si utilizza una testing e si vuole restare sempre con quella. La scelta dovrebbe inoltre riflettere quella adottata per tutti i repository in <code>/etc/apt/sources.list</code>, tenendo presente anche che i [[backports]] contengono sempre il ''codename''.
</pre>
Il primo e il secondo esempio sono equivalenti, il primo fa riferimento alla [[suite]] (detta anche '''''a'''rchive'') mentre il secondo al [[codename]] ('''''n'''ome in codice''). In entrambi si è definito il pinning per il pacchetto di nome "vlc", richiedendo che le versioni appartenenti alla release testing, attualmente [[Stretch]], abbiano priorità 991. Attenzione però che quando Stretch diverrà la nuova [[stable]], il primo si applicherà alla nuova testing mentre il secondo continuerà a far riferimento a Stretch. Solitamente è consigliabile il secondo (con ''codename''), se si utilizza una stable e si vogliono prelevare pacchetti da testing, mentre il primo (con ''suite'') se si utilizza una testing e si vuole restare sempre con quella. La scelta dovrebbe inoltre riflettere quella adottata per tutti i repository in <code>/etc/apt/sources.list</code>, tenendo presente anche che i [[backports]] contengono sempre il ''codename''.


Nel terzo esempio invece, sfruttando un semplicissimo pattern, 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.
Nel terzo esempio invece, sfruttando un semplicissimo pattern, 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.
Riga 166: Riga 164:


== Stable con backports ==
== Stable con backports ==
Non è necessario alcun pinning nemmeno aggiungendo i [[backports]] ai repository della [[stable]] (attualmente [[Jessie]]), in quanto di default sono disattivati, a eccezione dei pacchetti presenti soltanto lì, e consentono solo l'aggiornamento automatico dei pacchetti installati manualmente dai backports.
Non è necessario alcun pinning nemmeno aggiungendo i [[backports]] ai repository della [[stable]] (attualmente [[{{Codename|Stable}}]]), in quanto di default sono disattivati, a eccezione dei pacchetti presenti soltanto lì, e consentono solo l'aggiornamento automatico dei pacchetti installati manualmente dai backports.


Per installare un pacchetto dai backports la prima volta, basta utilizzare [[apt]] (o equivalentemente [[apt-get]]):
Per installare un pacchetto dai backports la prima volta, basta utilizzare [[apt]] (o equivalentemente [[apt-get]]):
<pre># apt -t jessie-backports install nomepacchetto</pre>
# apt -t {{Codename|stable}}-backports install nomepacchetto


Per esempio per installare <code>libreoffice</code>:
Per esempio per installare <code>libreoffice</code>:
<pre># apt -t jessie-backports install libreoffice</pre>
# apt -t {{Codename|stable}}-backports install libreoffice


Dopo di che sarà aggiornato automaticamente assieme agli altri pacchetti di Jessie con:
Dopo di che sarà aggiornato automaticamente assieme agli altri pacchetti di {{Codename|Stable}} con:
<pre>
<pre>
# apt update
# apt update
Riga 192: Riga 190:
Le principali alternative, presentate a solo scopo didattico:
Le principali alternative, presentate a solo scopo didattico:
* nessuna <code>Default-Release</code> in <code>apt.conf</code> e file <code>/etc/apt/preferences</code> come segue
* nessuna <code>Default-Release</code> in <code>apt.conf</code> e file <code>/etc/apt/preferences</code> come segue
<pre>
Package: libreoffice
Package: libreoffice
Pin: release n={{Codename|stable}}-backports
Pin: release n=jessie-backports
Pin-Priority: 500
Pin-Priority: 500
</pre>
* nessuna <code>Default-Release</code> in <code>apt.conf</code> e file <code>/etc/apt/preferences</code> come segue
* nessuna <code>Default-Release</code> in <code>apt.conf</code> e file <code>/etc/apt/preferences</code> come segue
<pre>
Package: libreoffice*
Package: libreoffice*
Pin: release n={{Codename|stable}}-backports
Pin: release n=jessie-backports
Pin-Priority: 500
Pin-Priority: 500
</pre>
* nessuna impostazione in <code>/etc/apt/preferences</code> e file <code>/etc/apt/apt.conf</code> come segue
* nessuna impostazione in <code>/etc/apt/preferences</code> e file <code>/etc/apt/apt.conf</code> come segue
<pre>
APT::Default-Release "{{Codename|stable}}-backports";
APT::Default-Release "jessie-backports";
</pre>


La prima possibilità restituisce errore quando si cerca di installare il pacchetto, costringendo a ricorrere all'opzione <code>-t</code> oppure lasciando ad [[aptitude]] il compito di risolvere i conflitti. In modo analogo può restituire errore durante un aggiornamento, se richiede anche l'aggiornamento delle sue [[dipendenze]], costringendo a ripetere il comando di installazione con <code>-t</code>.
La prima possibilità restituisce errore quando si cerca di installare il pacchetto, costringendo a ricorrere all'opzione <code>-t</code> oppure lasciando ad [[aptitude]] il compito di risolvere i conflitti. In modo analogo può restituire errore durante un aggiornamento, se richiede anche l'aggiornamento delle sue [[dipendenze]], costringendo a ripetere il comando di installazione con <code>-t</code>.
Riga 214: Riga 206:
La terza alternativa è l'unica che funziona sempre in automatico, ma si applica indiscriminatamente a tutti i pacchetti contenuti nei ''backports'', che è proprio quello che si voleva evitare per una [[stable]].
La terza alternativa è l'unica che funziona sempre in automatico, ma si applica indiscriminatamente a tutti i pacchetti contenuti nei ''backports'', che è proprio quello che si voleva evitare per una [[stable]].


{{Box | Backports obbligatori | Specificando una priorità di 990 anziché 500 nel file <code>/etc/apt/preferences</code>, come visto in questa sezione, l'installazione di <code>libreoffice</code> dai repository non backports fallirebbe anche utilizzando l'opzione <code>-t jessie</code>, rendendo l'installazione da ''jessie-backports'' l'unica possibile (anche se non garantita senza l'uso dell'opzione <code>-t jessie-backports</code>).
{{Box | Backports obbligatori | Specificando una priorità di 990 anziché 500 nel file <code>/etc/apt/preferences</code>, come visto in questa sezione, l'installazione di <code>libreoffice</code> dai repository non backports fallirebbe anche utilizzando l'opzione <code>-t {{Codename|stable}}</code>, rendendo l'installazione da ''{{Codename|stable}}-backports'' l'unica possibile (anche se non garantita senza l'uso dell'opzione <code>-t {{Codename|stable}}-backports</code>).


Si noti invece che l'uso dei backports non è obbligatorio specificando la <code>Default-Release</code> a ''jessie-backports'', per le ragioni già esposte nella sezione su <code>apt.conf</code> di questa guida, anche se lo sarebbero gli aggiornamenti (in assenza di conflitti con le dipendenze).}}
Si noti invece che l'uso dei backports non è obbligatorio specificando la <code>Default-Release</code> a ''{{Codename|stable}}-backports'', per le ragioni già esposte nella sezione su <code>apt.conf</code> di questa guida, anche se lo sarebbero gli aggiornamenti (in assenza di conflitti con le dipendenze).}}


== Unstable/Sid ed experimental ==
== Unstable/Sid ed experimental ==
Riga 234: Riga 226:


=== sources.list ===
=== sources.list ===
<pre>
deb <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}} main
deb http://ftp.it.debian.org/debian/ jessie main
deb-src <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}} main
deb-src http://ftp.it.debian.org/debian/ jessie main
 
# Aggiornamenti di sicurezza
# Aggiornamenti di sicurezza
deb <nowiki>http://security.debian.org/</nowiki> {{Codename|stable}}/updates main
deb http://security.debian.org/ jessie/updates main
deb-src <nowiki>http://security.debian.org/</nowiki> {{Codename|stable}}/updates main
deb-src http://security.debian.org/ jessie/updates main
 
# Aggiornamenti raccomandati
# Aggiornamenti raccomandati
deb <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}}-updates main
deb http://ftp.it.debian.org/debian/ jessie-updates main
deb-src <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}}-updates main
deb-src http://ftp.it.debian.org/debian/ jessie-updates main
 
# Backports
# Backports
deb <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}}-backports main
deb http://ftp.it.debian.org/debian/ jessie-backports main
deb-src <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|stable}}-backports main
deb-src http://ftp.it.debian.org/debian/ jessie-backports main
 
# Testing
# Testing
deb <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|testing}} main
deb http://ftp.it.debian.org/debian/ stretch main
deb-src <nowiki>http://ftp.it.debian.org/debian/</nowiki> {{Codename|testing}} main
deb-src http://ftp.it.debian.org/debian/ stretch main
 
# Aggiornamenti di sicurezza di testing
# Aggiornamenti di sicurezza di testing
deb <nowiki>http://security.debian.org/</nowiki> {{Codename|testing}}/updates main
deb http://security.debian.org/ stretch/updates main
deb-src <nowiki>http://security.debian.org/</nowiki> {{Codename|testing}}/updates main
deb-src http://security.debian.org/ stretch/updates main
</pre>


Quello mostrato è solo un esempio con i due repository principali di [[Jessie]], quello normale e di sicurezza, gli aggiornamenti raccomandati e i backports, che non sono strettamente necessari per questo esempio (ma è sempre preferibile cercare prima in questi repository che in testing), e i due repository di [[Stretch]] ([[testing]]).
Quello mostrato è solo un esempio con i due repository principali di [[{{Codename|Stable}}]], quello normale e di sicurezza, gli aggiornamenti raccomandati e i backports, che non sono strettamente necessari per questo esempio (ma è sempre preferibile cercare prima in questi repository che in testing), e i due repository di [[{{Codename|Testing}}]] ([[testing]]).


Questo file è valido per tutti gli esempi di questa sezione, mentre gli altri dipendono dalla configurazione del pinning desiderata. Si noti in particolare la scelta del [[codename]] (''stretch'') al posto della [[suite]] (''testing''), che è la configurazione consigliata in presenza di una [[stable]] e verrà quindi mantenuta anche per il pinning.
Questo file è valido per tutti gli esempi di questa sezione, mentre gli altri dipendono dalla configurazione del pinning desiderata. Si noti in particolare la scelta del [[codename]] (''{{Codename|testing}}'') al posto della [[suite]] (''testing''), che è la configurazione consigliata in presenza di una [[stable]] e verrà quindi mantenuta anche per il pinning.


=== apt.conf ===
=== apt.conf ===
Riga 268: Riga 258:
=== Pinning per un singolo pacchetto ===
=== Pinning per un singolo pacchetto ===
Creare il file <code>/etc/apt/preferences</code> con questo contenuto:
Creare il file <code>/etc/apt/preferences</code> con questo contenuto:
<pre>
Package: nomepacchetto
Package: nomepacchetto
Pin: release n={{Codename|testing}}
Pin: release n=stretch
Pin-Priority: 990
Pin-Priority: 990
 
Package: *
Package: *
Pin: release n={{Codename|testing}}
Pin: release n=stretch
Pin-Priority: -1
Pin-Priority: -1
</pre>


Questa configurazione si consiglia soltanto per pacchetti che non richiedono l'installazione di altri da testing.
Questa configurazione si consiglia soltanto per pacchetti che non richiedono l'installazione di altri da testing.
Riga 294: Riga 282:


{{Warningbox | Infatti mentre sarebbe possibile forzarne l'installazione con:
{{Warningbox | Infatti mentre sarebbe possibile forzarne l'installazione con:
<pre>
# apt-get -t {{Codename|testing}} install nomepacchetto
# apt-get -t stretch install nomepacchetto
</pre>
c'è da considerare che l'uso dell'opzione <code>-t</code> renderebbe il pinning per "nomepacchetto" superfluo; e inoltre la configurazione attuale impedirebbe gli aggiornamenti automatici delle dipendenze appena installate, costringendo a ripetere il comando precedente in caso di conflitti oppure ad avvelersi di [[aptitude]] per risolverli (prestando '''molta attenzione''' alle soluzioni proposte).}}
c'è da considerare che l'uso dell'opzione <code>-t</code> renderebbe il pinning per "nomepacchetto" superfluo; e inoltre la configurazione attuale impedirebbe gli aggiornamenti automatici delle dipendenze appena installate, costringendo a ripetere il comando precedente in caso di conflitti oppure ad avvelersi di [[aptitude]] per risolverli (prestando '''molta attenzione''' alle soluzioni proposte).}}


=== Pinning per tutti i pacchetti di testing e backports ===
=== Pinning per tutti i pacchetti di testing e backports ===
Questa possibilità consente gli aggiornamenti automatici dei pacchetti installati manualmente da testing, permettendone l'installazione anche in assenza di altre versioni disponibili. È sufficiente scrivere il file <code>/etc/apt/preferences</code> come segue:
Questa possibilità consente gli aggiornamenti automatici dei pacchetti installati manualmente da testing, permettendone l'installazione anche in assenza di altre versioni disponibili. È sufficiente scrivere il file <code>/etc/apt/preferences</code> come segue:
<pre>
Package: *
Package: *
Pin: release a={{Codename|stable}}-backports
Pin: release a=jessie-backports
Pin-Priority: 300
Pin-Priority: 300
 
Package: *
Package: *
Pin: release n={{Codename|testing}}
Pin: release n=stretch
Pin-Priority: 200
Pin-Priority: 200
Dove ''{{Codename|stable}}-backports'' è il nome della [[suite]] (e il [[codename]], che sono uguali per i [[backports]]) dei repository backports di [[{{Codename|Stable}}]]. È consigliabile specificare la nuova priorità a prescindere dalla loro presenza, altrimenti se attivati saranno sempre nascosti da [[{{Codename|Testing}}]], avendo di default una priorità di 100 e contenendo versioni non più aggiornate.
</pre>
Dove ''jessie-backports'' è il nome della [[suite]] (e il [[codename]], che sono uguali per i [[backports]]) dei repository backports di [[Jessie]]. È consigliabile specificare la nuova priorità a prescindere dalla loro presenza, altrimenti se attivati saranno sempre nascosti da [[Stretch]], avendo di default una priorità di 100 e contenendo versioni non più aggiornate.


Si noti che i valori scelti non sono gli unici possibili. L'importante è che siano soddisfatte le seguenti condizioni:
Si noti che i valori scelti non sono gli unici possibili. L'importante è che siano soddisfatte le seguenti condizioni:
* ''jessie-backports'' deve avere una priorità inferiore a quella di default (500), utilizzata per ''jessie'' e ''jessie-updates'';
* ''{{Codename|stable}}-backports'' deve avere una priorità inferiore a quella di default (500), utilizzata per ''{{Codename|stable}}'' e ''{{Codename|stable}}-updates'';
* ''stretch'' deve avere una priorità inferiore a quella scelta per ''jessie-backports'';
* ''{{Codename|testing}}'' deve avere una priorità inferiore a quella scelta per ''{{Codename|stable}}-backports'';
* ''stretch'' e ''jessie-backports'' devono avere una priorità almeno pari a 100, per consentire gli aggiornamenti automatici una volta che un pacchetto è installato da tali repository.
* ''{{Codename|testing}}'' e ''{{Codename|stable}}-backports'' devono avere una priorità almeno pari a 100, per consentire gli aggiornamenti automatici una volta che un pacchetto è installato da tali repository.


Ora basterà:
Ora basterà:
<pre>
# apt-get -t {{Codename|testing}} install nomepacchetto
# apt-get -t stretch install nomepacchetto
per installare nuovi pacchetti da {{Codename|Testing}}, che saranno poi aggiornati in automatico. Si noti però che perfino in questo caso gli aggiornamenti potrebbero comunque richiedere l'uso dell'opzione <code>-t</code> oppure il meccanismo di risoluzione dei conflitti di [[aptitude]], se nuove dipendenze fossero aggiunte nello stesso ramo.
</pre>
per installare nuovi pacchetti da Stretch, che saranno poi aggiornati in automatico. Si noti però che perfino in questo caso gli aggiornamenti potrebbero comunque richiedere l'uso dell'opzione <code>-t</code> oppure il meccanismo di risoluzione dei conflitti di [[aptitude]], se nuove dipendenze fossero aggiunte nello stesso ramo.


== Testing con unstable ed experimental ==
== Testing con unstable ed experimental ==
3 581

contributi

Menu di navigazione