User Tools

Site Tools


doc:appunti:linux:sa:debian_upgrade_10_11

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 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 <package1> <package2> ...

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.

doc/appunti/linux/sa/debian_upgrade_10_11.txt · Last modified: 2023/10/03 07:35 by niccolo