Repository & pinning: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
Riga 153: Riga 153:
Per maggiori informazioni si consulti la guida [[Fare il downgrade di uno o più pacchetti]].
Per maggiori informazioni si consulti la guida [[Fare il downgrade di uno o più pacchetti]].


=== Retrocedere l'intero sistema ===
{{Warningbox | Si noti che cercare di retrocedere l'intero sistema, impostando un pinning superiore a 1000 per tutti i pacchetti di una precedente [[release]], '''È UNA FOLLIA!'''
Nella maggior parte dei casi (o forse sempre) questa '''È UNA FOLLIA''', tuttavia per motivazioni didattiche si mostra come fare. In primis è necessario eliminare, se presente, dal file <code>apt.conf</code> il parametro ''default-release'', dopo di che aggiungere al file <code>preferences</code> un record come il seguente (sostituire a "stable" la versione desiderata, ad esempio "testing" se si vuole retrocedere da "unstable").
 
<pre>
Non è minimamente testata né supportata, in quanto è un'operazione opposta all'aggiornamento tramite APT, e ha grandi probabilità di rendere l'intero sistema inusabile. Si raccomanda caldamente invece di effettuare una nuova installazione della [[release]] desiderata.}}
Package: *
Pin: release a=stable
Pin-Priority: 1001
</pre>
A questo punto dovrebbe essere sufficiente digitare da terminale:
<pre># apt-get dist-upgrade</pre>


= Esempi =
= Esempi =
Riga 167: Riga 161:


== Release pura ==
== Release pura ==
Non serve il pinning se si usano i repository ufficiali di una sola release di Debian, ma può essere prudente definire un file <code>apt.conf</code> se si dovessero aggiungere altri repository in seguito e ci si dimenticasse di definire correttamente un pinning.
Non serve il pinning se si usano i repository ufficiali di una sola release di Debian, ed è sconsigliato impostare una ''Default-Release'' in <code>apt.conf</code>. Infatti ciò avrebbe effetto sul repository principale e su quello della sicurezza, ma non sugli eventuali ''updates'' o ''proposed-updates'', che non sarebbero più aggiornati automaticamente, salvo che per i pacchetti già installati da quei repository. Per riabilitare gli aggiornamenti automatici sarebbe necessario impostare un pinning a 990, pari a quello della ''Default-Release''.
 
Ciò avrebbe effetto sul repository principale e su quello della sicurezza. Ma non sugli eventuali ''updates'' o ''proposed-updates'', che non sarebbero più aggiornati automaticamente, salvo che per i pacchetti già installati da quei repository. Per riabilitare gli aggiornamenti automatici è necessario impostare un pinning a 990, pari a quello della ''Default-Release''.


In una release pura i pacchetti dei ''backports'' continuano a restare disabilitati per la loro prima installazione, salvo presenti soltanto lì o li si scelga come target release, ma i pacchetti installati dai ''backports'' vengono aggiornati automaticamente senza bisogno di pinning. Il che corrisponde al loro comportamento di default anche in assenza di una ''Default-Release''.
In una release pura i pacchetti dei ''backports'' continuano a restare disabilitati per la loro prima installazione, salvo presenti soltanto lì o li si scelga come target release, ma i pacchetti installati dai ''backports'' vengono aggiornati automaticamente senza bisogno di pinning. Il che corrisponde al loro comportamento di default anche in assenza di una ''Default-Release''.


== Stable con backports obbligati ==
== Stable con backports obbligati ==
Si supponga di voler usare tutti i pacchetti della stable, con l'eccezione di quelli relativi a libreoffice che si vuole siano prelevati dai ''backports''.
Si supponga di voler usare tutti i pacchetti della stable, con l'eccezione di quelli relativi a libreoffice che si vuole siano prelevati dai ''backports'' (si legga [[backports|qui]] come attivarli).
 
=== sources.list ===
<pre>
deb http://ftp.it.debian.org/debian/ stable main
deb-src http://ftp.it.debian.org/debian/ stable main
 
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main
 
deb http://ftp.it.debian.org/debian/ wheezy-backports main
deb-src http://ftp.it.debian.org/debian/ wheezy-backports main
</pre>


=== apt.conf ===
=== apt.conf ===
Riga 192: Riga 172:
APT
APT
{
{
        Default-Release "stable";
         Cache-Limit 36000000;
         Cache-Limit 36000000;
         Get
         Get
Riga 198: Riga 177:
                 AutomaticRemove "true";
                 AutomaticRemove "true";
                 Fix-Broken "true";
                 Fix-Broken "true";
                Purge "true";
                 Show-Upgraded "true";
                 Show-Upgraded "true";
         }
         }
Riga 206: Riga 184:
         Autoclean-After-Update "true";
         Autoclean-After-Update "true";
         Auto-Fix-Broken "true";
         Auto-Fix-Broken "true";
        Purge-Unused "true";
}
}
</pre>
</pre>
Riga 215: Riga 192:
Package: libreoffice*
Package: libreoffice*
Pin: release n=wheezy-backports
Pin: release n=wheezy-backports
Pin-Priority: 992
Pin-Priority: 990
</pre>
</pre>


=== Osservazioni ===
=== Osservazioni ===
Per come è definito <code>preferences</code> l'installazione della versione di libreoffice da repository non ''backports'' è impossibile, anche usando l'opzione <code>-t</code> da riga di comando.
Per come è definito <code>preferences</code> l'installazione della versione di libreoffice da repository non ''backports'' è impossibile, una volta che i pacchetti entrano in tale [[repository]], anche usando l'opzione <code>-t</code> da riga di comando.


== Stable prelevando un pacchetto da testing ==
== Stable prelevando un pacchetto da testing ==
Inserire il repository di [[testing]] in <code>/etc/apt/sources.list</code> , ad esempio:
Il pericolo è che a ogni aggiornamento, aumenti la possibilità che nuove dipendenze da ''testing'' siano necessarie, rendendo la provenienza dei pacchetti della propria distribuzione sempre più mista, e quindi meno desiderabile di un passaggio diretto a ''testing''.
<pre>
deb http://ftp.it.debian.org/debian testing main
</pre>
ed eseguire un aggiornamento della lista dei pacchetti:
<pre>
# apt-get update
</pre>
Di seguito si mostrano diverse possibilità, in base alla configurazione di pinning desiderata.
 
{{Warningbox | Il pericolo è che a ogni aggiornamento, quanto più aumenta la distanza tra la versione di un pacchetto in ''testing'' e quella in ''stable'', aumenti la possibilità che nuove dipendenze da ''testing'' siano necessarie, rendendo la provenienza dei pacchetti della propria distribuzione sempre più mista.


In tal caso è raccomandabile invece optare per un passaggio a ''testing'', dato che non si godrebbe più dei benefici di un ambiente stabile e testato.}}
Comunque per prima cosa si devono aggiungere i repository di [[Repository ufficiali|testing]]. Di seguito sono esaminate diverse possibilità, in base alla configurazione di pinning desiderata.


=== Pinning per un singolo pacchetto, bloccando tutti gli altri ===
=== Pinning per un singolo pacchetto, bloccando tutti gli altri ===
Riga 263: Riga 230:
Per permettere l'installazione e l'aggiornamento automatico di un pacchetto da testing con tutte le sue dipendenze, basta creare il file <code>/etc/apt/preferences.d/miopinning</code> con questo contenuto:
Per permettere l'installazione e l'aggiornamento automatico di un pacchetto da testing con tutte le sue dipendenze, basta creare il file <code>/etc/apt/preferences.d/miopinning</code> con questo contenuto:
<pre>
<pre>
Package: nomepacchetto dipendenza1 dipendenza2 dipendenza3 ...
Package: nomepacchetto dipendenza1 dipendenza2 ...
Pin: release a=testing
Pin: release a=testing
Pin-Priority: 990
Pin-Priority: 990
Riga 303: Riga 270:
<pre>
<pre>
deb http://ftp.it.debian.org/debian/ testing main  
deb http://ftp.it.debian.org/debian/ testing main  
deb-src http://ftp.it.debian.org/debian/ testing main
deb http://security.debian.org/ testing/updates main  
deb http://security.debian.org/ testing/updates main  
deb-src http://security.debian.org/ testing/updates main
deb http://ftp.it.debian.org/debian unstable main  
deb http://ftp.it.debian.org/debian unstable main  
deb-src http://ftp.it.debian.org/debian unstable main
</pre>
</pre>


Riga 322: Riga 284:
                 AutomaticRemove "true";
                 AutomaticRemove "true";
                 Fix-Broken "true";
                 Fix-Broken "true";
                Purge "true";
                 Show-Upgraded "true";
                 Show-Upgraded "true";
         }
         }
Riga 330: Riga 291:
         Autoclean-After-Update "true";
         Autoclean-After-Update "true";
         Auto-Fix-Broken "true";
         Auto-Fix-Broken "true";
        Purge-Unused "true";
}
}
</pre>
</pre>
Riga 352: Riga 312:
### Debian testing
### Debian testing
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-src http://ftp.it.debian.org/debian/ testing main contrib non-free


### Debian testing - sicurezza
### Debian testing - sicurezza
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free


### repository NON ufficiali - multimedia
### repository NON ufficiali - multimedia
deb http://www.deb-multimedia.org testing main non-free
deb http://www.deb-multimedia.org testing main non-free
deb-src http://www.deb-multimedia.org testing main non-free
</pre>
</pre>


=== apt.conf ===
=== apt.conf ===
<pre>
<pre>
APT
APT
Riga 373: Riga 329:
                 AutomaticRemove "true";
                 AutomaticRemove "true";
                 Fix-Broken "true";
                 Fix-Broken "true";
                Purge "true";
                 Show-Upgraded "true";
                 Show-Upgraded "true";
         }
         }
Riga 381: Riga 336:
         Autoclean-After-Update "true";
         Autoclean-After-Update "true";
         Auto-Fix-Broken "true";
         Auto-Fix-Broken "true";
        Purge-Unused "true";
}
}
</pre>
</pre>


=== preferences ===
=== preferences ===
<br/>
<br/>
<pre>
<pre>
Riga 403: Riga 356:


=== Osservazioni ===
=== Osservazioni ===
# Poiché entrambe le fonti, ''principale'' e ''deb-multimedia'', appartengono alla release testing in teoria questo caso non sarebbe gestibile tramite pinning, tuttavia sotto l'ipotesi di voler installare da deb-multimedia solo i pacchetti non presenti nella fonte principale il problema è risolvibile. Evitando di definire in <code>apt.conf</code> una release obiettivo e definendo in <code>preferences</code> prima il record relativo a deb-multimedia si ottiene di riuscire ad assegnare la priorità desiderata, nonostante il fatto che il secondo record si applichi in teoria anche a deb-multimedia. Si noti che stanti così le cose dovrebbe essere in realtà possibile attribuire pin superiori, fino a 989, a deb-multimedia, senza che per questo i suoi candidati ottengano la precedenza su quelli del repository principale. Qualora invece si desiderasse dare la precedenza ai pacchetti di deb-multimedia sarebbe sufficiente definire la release obiettivo in <code>apt.conf</code> risultando perfino inutile definire un file <code>preferences</code>, visto che come già detto di norma i candidati di deb-multimedia hanno numero di versione maggiore di queli del repository principale.
# Poiché entrambe le fonti, ''principale'' e ''deb-multimedia'', appartengono alla release testing in teoria questo caso non sarebbe gestibile tramite pinning, tuttavia sotto l'ipotesi di voler installare da deb-multimedia solo i pacchetti non presenti nella fonte principale il problema è risolvibile. Evitando di definire in <code>apt.conf</code> una release obiettivo e definendo in <code>preferences</code> prima il record relativo a deb-multimedia si ottiene di riuscire ad assegnare la priorità desiderata, nonostante il fatto che il secondo record si applichi in teoria anche a deb-multimedia. Si noti che stanti così le cose dovrebbe essere in realtà possibile attribuire pin superiori, fino a 989, a deb-multimedia, senza che per questo i suoi candidati ottengano la precedenza su quelli del repository principale. Qualora invece si desiderasse dare la precedenza ai pacchetti di deb-multimedia sarebbe sufficiente definire la release obiettivo in <code>apt.conf</code> risultando perfino inutile definire un file <code>preferences</code>, visto che come già detto di norma i candidati di deb-multimedia hanno numero di versione maggiore di queli del repository principale.
# L'utilizzo dell'opzione '''-t''' in questo caso è inutile, visto che si lavora per ipotesi con una sola release.
# L'utilizzo dell'opzione '''-t''' in questo caso è inutile, visto che si lavora per ipotesi con una sola release.
Riga 419: Riga 371:
### Debian Ufficiale -- Testing
### Debian Ufficiale -- Testing
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-src http://ftp.it.debian.org/debian/ testing main contrib non-free


### Debian Ufficiale -- Testing Sicurezza
### Debian Ufficiale -- Testing Sicurezza
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free


### Debian Ufficiale -- Sid
### Debian Ufficiale -- Sid
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-src http://ftp.it.debian.org/debian/ unstable main contrib non-free


###  Debian Ufficiale -- Experimental
###  Debian Ufficiale -- Experimental
deb http://ftp.it.debian.org/debian/ experimental main contrib non-free
deb http://ftp.it.debian.org/debian/ experimental main contrib non-free
deb-src http://ftp.it.debian.org/debian/ experimental main contrib non-free


### deb-multimedia -- Audio/Video -- Marillat
### deb-multimedia -- Audio/Video -- Marillat
deb http://www.deb-multimedia.org testing main non-free
deb http://www.deb-multimedia.org testing main non-free
deb-src http://www.deb-multimedia.org testing main non-free
</pre>
</pre>


Riga 450: Riga 397:
<pre>
<pre>
APT::Cache-Limit 15000000;
APT::Cache-Limit 15000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Broken;
Riga 482: Riga 428:


= Comandi utili =
= Comandi utili =
È possibile visualizzare l'elenco delle priorità relative a tutti i repository e pacchetti dichiarati col seguente comando:
È possibile visualizzare l'elenco delle priorità relative a tutti i repository e pacchetti dichiarati con [[apt-cache]]:
<pre>$ apt-cache policy</pre>
<pre>$ apt-cache policy</pre>


Se si volesse visualizzare solo la priorità per un singolo singolo pacchetto, ad esempio nano, si può digitare:
Se si volesse visualizzare solo la priorità per un singolo singolo pacchetto, ad esempio nano, si può digitare:
<pre>$ apt-cache policy nano</pre>
<pre>$ apt-cache policy nano</pre>
Si veda anche la guida di [[apt-cache]].


= Approfondimenti =
= Approfondimenti =
=== Manpages ===
=== Manpages ===
<code>man apt.conf</code><br/>
<code>man apt.conf</code><br/>
<code>man apt_preferences</code>
<code>man apt_preferences</code>
Riga 501: Riga 443:
|Estesa_da =
|Estesa_da =
: [[Utente:Wtf|Wtf]]
: [[Utente:Wtf|Wtf]]
: [[Utente:HAL 9000|HAL 9000]]
|Verificata_da =
|Verificata_da =
: [[Utente:Wtf|Wtf]]
: [[Utente:Wtf|Wtf]]
: [[Utente:HAL 9000|HAL 9000]] 14:21, 29 mar 2015 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 14:08, 9 apr 2015 (CEST)
|Numero_revisori = 2
|Numero_revisori = 2
}}
}}


[[Categoria:Apt]]
[[Categoria:Apt]][[Categoria:E-zine]][[Categoria:Repository ufficiali]]
[[Categoria:E-zine]]
[[Categoria:Repository ufficiali]]
3 581

contributi