User Tools

Site Tools


doc:appunti:linux:sa:debian_upgrade

Debian Upgrade

Conflitto fra repository diversi

Può capitare di voler aggiungere un repository alternativo, ad esempio il famoso Deb Multimedia. Tale repository viene aggiunto nel file /etc/apt/sources.list, l'ordine in cui compare non fa differenza perché la priorità di installazione viene dal numero di versione.

deb   https://www.deb-multimedia.org   bullseye             main non-free
deb   https://www.deb-multimedia.org   bullseye-backports   main

In particolari circostanze si potrebbe però preferire la versione fornita ufficialmente da Debian, per ottenere questo risultato si elencano le versioni disponibili nei vari repository:

apt-cache showpkg <package>

e poi si forza l'installazione della versione esatta:

apt-get install --reinstall <package>=4.0.0-1

Per forzare invece la scelta di un pacchetto dai packports, bisogna specificare l'opzione -t:

apt-get -t bullseye-backports install <package>

Preferenze di installazione

In generale l'ordine in cui le source vengono elencate in /etc/apt/sources.list non è importante. Quello che conta è la priorità assegnata ad ognuna di esse. In generale le priorità delle sorgenti codename, codename-updates, codename-backports e codename sono predefinite in modo opportuno (vedi avanti).

  • Nel file /etc/apt/sources.list viene indicato una source (repository) per ogni riga; ogni source ha una priorità predefinita.
  • I pacchetti presenti in security e in updates vengono installati automaticamente perché hanno una versione superiore a quelli forniti dalla distribuzione standard (hanno la stessa priorità, ma versione superiore).
  • I pacchetti presenti in backports non vengono installati automaticamente perché hanno una priorità più bassa. È possibile installare un singolo pacchetto dai backports con apt -t bullseye-backports install nomepacchetto. L'impostazione rimane memorizzata ed ogni aggiornamento successivo agirà di conseguenza. FIXME Come vedere i pinning attivi e come disattivarli?
  • A parità di versione e di priorità viene installato il pacchetto dal repository elencato per primo. È l'unico caso in cui l'ordine conta, ma in generale non dovrebbe mai accadere.
  • In generale anche i repository alternativi hanno la stessa priorità della distribuzione ufficiale e vengono preferiti tramite numero di versione superiore o pinning esplicito.

Per vedere la policy con cui viene scelta la source da cui installare un pacchetto si usa il comando:

apt-cache policy

Per ogni source si hanno più sezioni relative alle varie componenti elencate (main, non-free, contrib, …); inoltre se è attivo il multiarch si hanno altre sezioni relative alle architetture attivate (i386, amd64, …). Ecco un estratto dell'output:

 500 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages
     release v=11,o=Debian,a=stable-security,n=bullseye-security,l=Debian-Security,c=main,b=amd64
     origin deb.debian.org
 500 http://deb.debian.org/debian bullseye-updates/main amd64 Packages
     release v=11-updates,o=Debian,a=stable-updates,n=bullseye-updates,l=Debian,c=main,b=amd64
     origin deb.debian.org
 500 http://deb.debian.org/debian bullseye/main amd64 Packages
     release v=11.0,o=Debian,a=stable,n=bullseye,l=Debian,c=main,b=amd64
     origin deb.debian.org
 100 https://www.deb-multimedia.org bullseye-backports/main amd64 Packages
     release v=11,o=Unofficial Multimedia Packages,a=stable-backports,n=bullseye-backports,l=Unofficial Multimedia Packages,c=main,b=amd64
     origin www.deb-multimedia.org
 500 https://www.deb-multimedia.org bullseye/main amd64 Packages
     release v=11,o=Unofficial Multimedia Packages,a=stable,n=bullseye,l=Unofficial Multimedia Packages,c=main,b=amd64
     origin www.deb-multimedia.org

Nella prima colonna viene mostrata la priorità di ciascuna source: numeri più grandi corrispondono ad una maggiore priorità; la priorità predefinita è 500.

Come si vede i pacchetti bullseye-security hanno la stessa priorità di quelli nella distribuzione ufficiale bullseye, quindi vengono installati perché hanno una versione maggiore. Stesso discorso vale per i bullseye-updates: hanno la stessa priorità e quindi dovranno avere una versione maggiore. Invece i backports hanno una priorità più bassa (100) e quindi non verranno mai installati automaticamente, sarà necessario fare un pinning manuale.

A parità di priorità della source verrà selezionato il pacchetto con numero di versione superiore, questo ad esempio è il modo in cui viene preferito un pacchetto da Deb Multimedia piuttosto che da Debian ufficiale.

Web References

Rimozione pacchetti non più necessari e obsoleti

Al termine dell'aggiornamento conviene verificare ad esempio con dselect quali sono i pacchetti considerati obsoleti, e quindi disinstallarli.

Inoltre dovrebbe essere possibile eliminare tutti i pacchetti installati per dipendenze precedenti, che non sono più necessari:

apt autoremove

Infine si possono cercare pacchetti marcati per essere disinstallati, per rimuovere anche loro:

dpkg --get-selections | egrep -v '\binstall\b'
doc/appunti/linux/sa/debian_upgrade.txt · Last modified: 2023/10/03 09:35 by niccolo