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> ...
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:
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.
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
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.
In Debian 11 Bullseye non esiste il pacchetto python-mysqldb per Python 2.
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.
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.