Table of Contents
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. 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'