Translation(s): English - Italiano


LAVORI IN CORSO: refactoring of AptConf, AptPreferences and other apt configuration pages

Apt è configurato da diverse risorse, incluse:


apt_preferences (pinning di APT)

Quando sono abilitati più repository Apt, un pacchetto può essere presente in diversi. Per sapere quale deve essere installato, Apt assegnapriorità ai pacchetti. Quella predefinita è 500.

Il Pinning permette di cambiare priorità per solo alcuni pacchetti/repository, in modo che si possa:

<!> Con alcune eccezioni (Debian Backports) non è raccomandato mescolare repository o rilasci a meno che non siano preparati specialmente. Vedere Non rompere Debian. Non abilitare repository Debian Unstable su Debian Stable. Quando si usa il pinning è necessario assicurarsi per conto proprio della compatibilità tra i pacchetti dato che Debian non la garantisce.

Per visualizzare la priorità di un pacchetto specifico, usare apt-cache policy nomepacchetto:

$ apt-cache policy claws-mail
claws-mail:
  Installed : (none)
  Candidate : 3.14.1-3+b1
 Version table :
     3.17.1-1~bpo9+1 100
        100 https://deb.debian.org/debian stretch-backports/main amd64 Packages
     3.14.1-3+b1 500
        500 https://deb.debian.org/debian stretch/main amd64 Package

Nell'esempio sopra il pacchetto che verrebbe installato (Candidate) sarebbe il più vecchio, la versione 3.14 da stretch/main. stretch-backports/main ha una versione più nuova 3.17, ma con una priorità più bassa (100 invece di 500 di stretch).

Per visualizzare la priorità globale di ogni fonte di Apt (repository):

$ apt-cache policy 
Package files: 
 # Il repository predefinito https://wiki.debian.org/DebianStable con priorità 500
 500 https://deb.debian.org/debian stable/main amd64 Packages
     o=Debian,n=stable,l=Debian,c=main,b=amd64
     origin deb.debian.org

 # Il repository per le https://wiki.debian.org/PointReleases Debian (risoluzione di problemi di sicurezza e bug gravi ~ ogni 2 mesi)
 500 https://deb.debian.org/debian stable-updates/main amd64 Packages
     release o=Debian,a=oldstable-updates,n=stable-updates,l=Debian,c=main,b=amd64
     origin deb.debian.org

 # Il repository https://wiki.debian.org/DebianSecurity con tempo di risposta breve per risoluzione di problemi di sicurezza
 500 http://security.debian.org stable/updates/main amd64 Packages
     release v=9,o=Debian,a=oldstable,n=stable,l=Debian-Security,c=main,b=amd64
     origin security.debian.org

 # Il repository https://wiki.debian.org/DebianBackports che ha una priorità di 100
 100 https://deb.debian.org/debian stable-backports/main amd64 Packages
     release o=Debian Backports,a=stable-backports,n=stable-backports,l=Debian Backports,c=main,b=amd64
     origin deb.debian.org

 # La priorità dei pacchetti installati localmente
 100 /var/lib/dpkg/status 
     release a=now

Forzare l'installazione di un pacchetto da un repository

Per dire ad Apt di installare un pacchetto da stretch-backports, anche se il pacchetto ha priorità bassa:

apt install -t stretch-backports claws-mail

Notare che il pacchetto non verrà automaticamente aggiornato in caso di esecuzione di un aggiornamento con Apt.

Preferire sempre i pacchetti da un repository

Per preferire sempre i pacchetti da stretch-backports (e perciò permettere gli aggiornamenti con Apt), impostare una priorità più alta per il pacchetto proveniente dal rilascio stretch-backports. Modificare il file /etc/apt/preferences.d/99debian-backports (o crearlo):

Package: claws-mail
Pin: release a=stretch-backports
Pin-Priority: 900

Ora se si installa il pacchetto claws-mail si installerà la versione da  stretch-backports. L'esecuzione di un aggiornamento di Apt prenderà automaticamente le versioni più nuove da stable-backports. Eseguendo di nuovo apt-cache policy si può vedere:

Pinned packages:
     claws-mail -> 3.17.1-1~bpo9+1 with priority 900

Installazione impedita o selettiva da repository di terze parti

Per evitare l'installazione di pacchetti più nuovi da un repository di terze parti (Non rompere Debian), anche se hanno uguale priorità, modificare il file /etc/apt/preferences.d/99my-custom-repository:

# Non preferire mai pacchetti dal repository mio-repo-personalizzato
Package: *
Pin: origin o=mio-repo-personalizzato
Pin-Priority: 1

# Permettere l'aggiornamento solo de software mio-software-specifico da mio-repo-personalizzato
Package: mio-software-specifico
Pin: origin o=mio-repo-personalizzato
Pin-Priority: 500

Il modo in cui si nominano i file in /etc/apt/preferences.d/ è libero ma l'ultimo in ordine alfabetico ha la precedenza.

Il * dopo Package: non è un carattere jolly, ma un caso speciale che significa "tutto". I caratteri jolly NON sono supportati. Tuttavia vendgono accettati caratteri jolly alla fine delle versioni (2.6* corrisponde sia a 2.6 sia a 2.6.18).

Altre note sul pinning

In aggiunta a usare origin, si può fare il pinning di pacchetti sulla base di altre variabili. apt-cache policy mostra le altre variabili che possono essere utilizzate come chiave per il Pin::

   1 https://deb.debian.org/debian stretch-backports/non-free i386 Packages
     release o=Debian Backports,a=stretch-backports,n=stretch-backports,l=Debian Backports,c=non-free,b=i386
     origin deb.debian.org

Queste variabili sono fornite dai file Release nei repository Debian.

Vedere anche:

apt.conf

man 5 apt.conf

Apt accetta file di configurazione (senza estensione) in /etc/apt/apt.conf.d/. Questi vengono elaborati da Apt in ordine numerico/alfabetico. Anche /etc/apt/apt.conf è valido, ma deprecato.

Questi file possono contenere varie direttive:

Se si deve veramente utilizzare FTP, quello che segue imposta il proxy FTP:

 Acquire::ftp
 {
   Proxy "ftp://proxy:2121/";
   ProxyLogin
   {
      "USER $(SITE_USER)@$(SITE)";
      "PASS $(SITE_PASS)";
   }
 }


CategoryPackageManagement | CategorySoftware | CategorySystemAdministration