====== Debian Upgrade ======
* **[[debian_upgrade_11_12]]**
* **[[debian_upgrade_10_11]]**
* **[[debian_upgrade_9_10]]**
===== Conflitto fra repository diversi =====
Può capitare di voler aggiungere un repository alternativo, ad esempio il famoso **[[https://deb-multimedia.org/|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
e poi si forza l'installazione della versione esatta:
apt-get install --reinstall =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
===== 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 ===
* **[[https://wiki.debian.org/SourcesList|SourcesList]]**
* **[[https://wiki.debian.org/AptConfiguration|AptConfiguration]]**
* **[[https://guide.debianizzati.org/index.php/Repository_&_pinning|Repository & pinning]]**
===== 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'