====== Aggiornamento da Debian 10 Buster a 11 Bullseye ======
Si modifica il file /etc/apt/sources.list sostituendo **buster** con **bullseye**:
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
Ricordiamo che la distribuzione **//codename//-updates** serve a contenere gli aggiornamenti che è opportuno integrare anche prima dei successivi rilasci minori; ad esempio gli aggiornamenti degli antivirus oppure delle timezone forniti con i pacchetti **clamav-base** e **tzdata**.
La distribuzione **//codename//-security** contiene gli aggiornamenti urgenti relativi a problemi di sicurezza.
È possibile quindi aggiornare la lista dei pacchetti disponibili e fare un **aggiornamento intelligente**, cioè vengono eventualmente rimossi dei pacchetti se è necessario per completare l'aggiornamento:
apt update
apt full-upgrade
Si possono fare le stesse operazioni anche con il front-end ''apt-get'':
apt-get update
apt-get dist-upgrade
Pare che i due comandi siano equivalenti, almeno stando a quanto riportato da **[[https://askubuntu.com/questions/770135/apt-full-upgrade-versus-apt-get-dist-upgrade|questo post]]**.
Terminato l'upgrade dovrebbe essere possibile fare un **reboot** e quindi un normale **upgrade**:
apt update
apt upgrade
Alcuni pacchetti installati in precedenza potrebbero risultare marcati per **deinstall**, è necessario esaminare la lista ed eventualmente procedere alla loro reinstallazione:
dpkg --get-selections | egrep -v '\binstall\b'
apt install ...
===== Problema con Python =====
Con Debian 11 si cerca di forzare il passaggio dall'obsoleto Python 2 al **Python 3**. L'eseguibile **python** non esiste, si deve esplicitamente lanciare **python2** oppure **python3**. In alternativa si pò installare il pacchetto **python-is-python2** oppure **python-is-python3** per definire qual è l'ambiente predefinito.
Alcune librerie non sono più disponibili:
* **python-gtk2**
* ...
===== Problema con Unison =====
Dopo un aggiornamento da **Buster** a **Bullseye** (cioè da **Debian 10** a **Debian 11**) risulta un problema nell'esecuzione di **Unison** fra host con le due versioni: **2.48.4** per Buster e **2.51.3**, che ovviamente risultano **incompatibili**. In teoria in Bullseye il programma Unison è pacchettizzato includendo il numero di versione, cioè il pacchetto si chiama **unison-2.51+4.11.1** e contiene l'eseguibile **unison-2.51+4.11.1**, questo consentirebbe la coesistenza di versioni differenti; tuttavia pare che non esista un pacchetto Unison 2.48 per Bullseye.
Per il momento la soluzione sembra che sia quella di **installare il pacchetto per Buster** sulla nuova Bullseye, non ci sono problemi di dipendenza.
===== Aggiornamento PostgreSQL =====
Con **pg_lsclusters** si vede che risultano installati i due cluster, ver. 11 e ver. 13:
pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
13 main 5433 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
Nel cluster nuovo non dovrebbero esserci database in esecuzione (a parte ovviamente **postgres**, **template0** e **template1**):
su - postgres
psql --cluster 13/main
postgres=# \l
Per tentare l'aggiornamento autmatico la procedura da utente root è la seguente (verificare dopo ogni operazione che i cluster attivi siano quelli attesi, sulla porta TCP attesa):
pg_dropcluster --stop 13 main
pg_upgradecluster 11 main
pg_dropcluster 11 main
===== Icinga2 =====
In **Debian 11 Bullseye** esite il pacchetto **icinga2** versione **2.12.3-1** che dipende da **libreadline7**, ma quest'ultimo non è disponibile. Durante l'aggiornamento verrà mantenuto il pacchetto **libreadline7 7.0-5** dalla vecchia distribuzione **Buster**, che pare funzionare.
Controllare inoltre che venga installato il pacchetto **php-pgsql** e la sua dipendenza dalla nuova versione PHP 7.4.
===== python-mysqldb =====
In **Debian 11 Bullseye** non esiste il pacchetto **python-mysqldb** per **Python 2**.
===== Pacchetti sostituiti =====
Alcuni pacchetti Debian 10 non hanno il corrispondente esatto in Debian 11, questa una tabella di possibili sostituti:
^ Debian 10 Buster ^ Debian 11 Bullseye ^
| iptraf | iptraf-ng |
| android-tools-adb | adb |
| xvnc4viewer | tigervnc-viewer |
| python | python-is-python2 |
| qemu-kvm | qemu-system-x86 |
| fuse | fuse3 |
| libreoffice-kde5 | libreoffice-kf5 |
| libreoffice-gtk2 | N/A |
| kvpnc | N/A |
| orage | N/A |
| python-mysqldb | N/A |
Per il Python è possibile installare **python-is-python2** oppure **python-is-python3**, a seconda di quale interprete predefinito si voglia usare. Non è più prevista la dipendenza generica da **python**, ma un pacchetto dovrà indicare esplicitamente **python2** oppure **python3**.
===== Aggiornamento di vecchi backports =====
Può accadere che alcuni pacchetti installati dai **backports**, dagli **updates** oppure dai **security** della **vecchia distribuzione**, non vengano aggiornati automaticamente alla **nuova stabile**. Con questo comando si dovrebbe poter scoprire ciò che è stato installato dalla Debian 10 Backports:
dpkg --list | grep '~deb10u'
In generale dovrebbe essere sufficiente elencare in **sources.list** tutte le distribuzioni aggiuntive (''updates'', ''security'', ecc.) ed effettuare l'aggiornamento. È possibile chiedere quali saranno i pacchetti aggiornati con:
apt update
apt list --upgradable
Raramente si dovrà ricorrere all'aggiornamento manuale come indicato al paragrafo precedente.