Table of Contents
Aggiornamento da Debian 11 Bullseye a 12 Bookworm
Update e upgrade
Aggiornamento corrente
Prima di modificare i repository è necessario fare un update all'ultima point-release della distribuzione installata (in effetti l'upgrade non dovrebbe avere alcun effetto):
apt update apt upgrade apt --purge autoremove
Cambio dei repository
Rispetto alla versione 11 Bullseye è stata aggiunta la nuova componente non-free-firmware, per distribuire solo i firmware non-free, che prima erano nella più generica non-free. Questo un template del nuovo file /etc/apt/sources.list:
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
Upgrade
Dopo aver aggiornato il file /etc/apt/sources.list si esegue l'upgrade vero e proprio:
apt update apt upgrade --without-new-pkgs apt full-upgrade
adduser
A differenza delle release precedenti, Debian 12 aggiunge per default ogni utente creato con adduser al gruppo users
. Per evitarlo si deve impostare in /etc/adduser.conf:
USERS_GID=-1
È cambiato anche il valore predefinito di DIR_MODE, che da 0750
è diventato 0700
.
impi
Sembra che ci sia un bug nel pacchetto ipmitool. Vedere questo post per una possibile soluzione.
Python telnetlib
>>> import telnetlib <stdin>:1: DeprecationWarning: 'telnetlib' is deprecated and slated for removal in Python 3.13
PHP
Con l'introduzione di PHP 8.2 la funzione get_magic_quotes_gpc() è stata definitivamente rimossa e quindi generea un errore.
SpamAssassin
Il demone spamd non è più compreso nel pacchetto Debian 12 Bookworm di spamassassin (versione 4.0.0), si deve installare il pacchetto omonimo separato.
ClamAV
Se si utilizza il demone clamd su socket TCP è necessario fare una modifica ai file di configurazione di Systemd perché l'opzione TCPSocket in /etc/clamav/clamd.conf
non è sufficiente. Manca infatti l'autorizzazione da parte del sottosistema ad attivare un socket. Vedere ClamAV on TCP socket in Debian 12.
In pratica si crea una unit di Systemd nel file /etc/systemd/system/clamav-daemon.socket.d/tcp-socket.conf con le seguenti dichiarzioni:
[Socket] ListenStream=127.0.0.1:3310
Quindi si riavvia Systemd:
systemctl daemon-reload systemctl restart clamav-daemon.socket systemctl restart clamav-daemon.service
MapServer
A causa dell'upgrade da MapServer 7.6.2 a MapServer 8.0.1 praticamente tutte le applicazioni basate su MapServer hanno smesso di funzionare. Vedere la pagina apposita per alcune note a riguardo: MapServer upgrade from Debian 11 to Debian 12.
LDAP server Slapd
Durante l'aggiornamento si è avuto l'errore a backend being used by the current OpenLDAP installation is not supported anymore e infatti il servizio LDAP non funziona più.
Versioni di Unison
Controllare le varie versioni di Unison installate e verificare se sono allineate a quelle disponibili in Bookworm; se possibile rimuovere quelli obsoleti. I pacchetti disponibili in Bookworm sono:
apt install unison-2.52 apt install unison-2.51+4.13.1
Problema upgrade gstreamer
Se sono installati i pacchetti gstreamer1.0-plugins-* dal repository Deb-Multimedia potrebbe capitare una situazione di stallo durante l'upgrade:
Errors were encountered while processing: /tmp/apt-dpkg-install-LZM0mY/293-gstreamer1.0-plugins-good_1.22.0-5+deb12u1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
La soluzione proposta di eseguire apt --fix-broken install non è stata sufficiente, è stato necessario rimuovere (almeno temporaneamente) alcuni pacchetti e forzare l'installazione di altri del repository ufficiale Debian invece che da quello Deb-Multimedia:
dpkg --purge gstreamer1.0-plugins-ugly quodlibet apt install gstreamer1.0-plugins-good=1.22.0-5+deb12u1
OpenVPN BF-CBC not supported
L'opzione cipher viene usata quando si usa una configurazione con l'opzione secret e pre-shared-key, una situazione che in generale dovrebbe essere rimpiazzata dalle configurazioni TLS (es. EasyRSA).
L'impostazione predefinita per cipher è BF-CBC, che però non è più presente in OpenVPN 2.6.3 (controllare con openvpn --show-ciphers
); si deve quindi necessariamente indicare un protocollo diverso, ad esempio:
# The --cipher option is used to connect OpenVPN older than 2.6.0 using pre-shared keys. # Notice that AES-256-GCM is not supported in pre-shared keys mode. #cipher AES-256-CBC # # Newer connections using TLS uses the --data-ciphers option. data-ciphers AES-256-GCM:AES-128-GCM
PostgreSQL da 13 a 15
In generale dovrebbe funzionare la procedura pg_upgradecluster. Vedere una descrizione dettagliata in PostgreSQL/PostGIS Upgrade from 9.6 to 11 soprattutto se si hanno database con estensioni PostGIS. In estrema sintesi:
su - su - postgres # Siamo utente postgres pg_lsclusters # Verificare che la nuova istanza 15 sia sulla porta alternativa 5433. psql --cluster 13/main # Verificare con \l che i database esistenti siano in questa istanza. psql --cluster 15/main # Verificare che questa istanza sia in effetti vuota pg_dropcluster --stop 15 main pg_upgradecluster 13 main pg_lsclusters # Verificare che la nuova istanza 15 sia sulla porta predefinita 5432. pg_dropcluster 13 main pg_ctlcluster 15 main stop exit # Siamo di nuovo utente root systemctl daemon-reload systemctl stop postgresql@13-main systemctl disable postgresql@13-main systemctl stop postgresql@15-main systemctl start postgresql@15-main systemctl enable postgresql@15-main
Cacti da 1.2.16 a 1.2.24
Dopo l'aggiornamento di versione Debian, aprendo l'URL del sistema Cacti si viene accolti da una procedura di aggiornamento (wizard) dalla versione 1.2.16 di Cacti alla 1.2.24. Il sistema effettua una serie di controlli e suggerisce le modifiche da effettuare. In particolare si è dovuto:
Popolazione delle tabelle time zone in MySQL
Anzitutto si verifica che le tabelle timezone non sono state popolate: si esegue il client mysql e quindi:
CONNECT mysql SELECT * FROM time_zone_name;
Si esegue quindi lo script per la popolazione delle tabelle:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
Conversione database Cacti a Unicode
Collegarsi al database Cacti e eseguire:
CONNECT cacti ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Modifica collation_server
Cacti suggerisce di impostare il collation_server = utf8mb4_unicode_ci, mentre Debian lo imposta a utf8mb4_general_ci
. La modifica va fatta nel file /etc/mysql/mariadb.conf.d/50-server.cnf.
Per consentire alla procedura PHP di aggiungere e/o modificare template ecc., si devono dare (temporaneamente) i seguenti permessi:
chown -R www-data:www-data /usr/share/cacti/site/resource/snmp_queries/ chown -R www-data:www-data /usr/share/cacti/site/resource/script_server/ chown -R www-data:www-data /usr/share/cacti/site/resource/script_queries/ chown -R www-data:www-data /usr/share/cacti/site/scripts/
Al termine della procedura eseguire di nuovo lo script assegnando proprietario e gruppo a root:root.
Attivazione di InnoDB
Il wizard segnala come anomalia che l'impostazione innodb di MySQL sarebbe UNSET. In effetti sembra che già tutte le tabelle della nostra installazione siano gestite dal motore InnoDB (è l'impostazione predefinita del server MariaDB 10.11.3).
Per verificare l'impostazione predefinita collegarsi al database mysql ed eseguire uno dei comandi seguenti:
SHOW ENGINES; SELECT @@default_storage_engine;
Per verificare le tabelle del database cacti collegarsi a quel database ed eseguire SHOW TABLE STATUS e controllare per ogni riga il valore del campo Engine. Eventualmente convertire le tabelle che fossero ancora MyISAM.
La sintassi è del tipo:
ALTER TABLE TABLE_NAME ENGINE=InnoDB;
Le tabelle che usan l'engine Memory dovrebbero servire per le installazioni con migliaia di data source e i Remote Data Collectors; in tal caso è necessario abilitare l'opzione On-demand RRD Updating in Console ⇒ Configuration ⇒ Settings ⇒ Performance.
Altre impostazioni MariaDB
Altre impostazioni suggerite dal Cacti Server v1.2.24 Installation Wizard possono essere inserite in un file /etc/mysql/mariadb.conf.d/99-local.cnf:
max_heap_table_size = 256M tmp_table_size = 256M innodb_doublewrite = OFF innodb_buffer_pool_size = 4G
Verificare che le impostazioni siano coerenti con il proprio server, in particolar modo innodb_buffer_pool_size
si suggerisce di impostarlo al 25% della memoria totale.
Riattivazione icone azione grafico
Nella visualizzazione Graphs ⇒ Preview sono scomparse le icone a fianco dei grafici. Per tornare a visualizzarle si deve procedere da Console ⇒ Configuration ⇒ Users ⇒ admin ⇒ Permissions ed attivare l'opzione Show Graph Action Icons.
Python e pip3 install
Debian 12 aderisce al Python Enhancement Proposal 668, cioè l'ambiente Python viene gestito esclusivamente dal sistema di pacchetti Debian (system-wide); per impostazione predefinita non è possibile installare moduli aggiuntivi in user space con il comando pip3 install ... o similari.
La strada suggerita è quella di creare, quando necessario, dei venv in user-space; all'interno di ciascnun venv è possibile installare con pip
tutti i moduli aggiuntivi necessari. Vedere in proposito il paragrafo Solving the pip3 install problem.
XFCE e Libreoffice
In Debian 12 l'ambiente desktop XFCE è alla versione 4.18, questo si basa sulle librerie GTK+ 3, le stesse dell'ambiente desktop GNOME.
Per avere una migliore integrazione di Libreoffice (la versione fornita da Debian 12 è la 7.4.7) nell'ambiente XFCE è quindi opportuno installare il progamma libreoffice-gnome che richiede a sua volta l'installazione di libreoffice-gtk3 (in realtà è quest'ultimo a far cambiare il layout del programma). In questo modo la dimensione delle icone e dei menu sarà più omogenea al resto dell'ambiente. Nelle figure che seguono la differenza di layout di Calc: prima dell'installazione e dopo l'installazione di libreoffice-gtk3.
ATTENZIONE: In alcune circostanze (forse Debian 11, Libreoffice 7.0.4) potrebbe capitare che le icone accanto alle voci di menu non vengano mostrate quando si attiva l'integrazione GTK+ 3. Stando all'articolo Why did the icons disappear in the menus of version 6.4? dovrebbe trattarsi di un bug di Libreoffice, che si risolve temporaneamente in questo modo:
- Avvaire Libreoffice.
- Strumenti ⇒ Opzioni ⇒ Avanzate ⇒ Apri la configurazione avanzata.
- Cercare la stringa IconsInMenu (si trova in org.openoffice.Office.Common ⇒ View ⇒ Menu).
- Modificare l'impostazione IsSystemIconsInMenus in false.
- Lasciare l'impostazione ShowIconsInMenues a true.
La soluzione non è comunque perfetta, come si vede dalla figura le icone sono allineate come testo e non con il normale rientro.
Programmi KDE
Pur essendo l'ambiente desktop XFCE basato sulle librerie GTK+ 3 (quelle nate per l'ambiente GNOME), è possibile installare ed eseguire i programmi creati nativamente per l'ambiente KDE (che usa il toolkit Qt invece di GTK+).
Ad esempio è possibile installare il visualizzatore di PDF okular semplicemente installando il relativo pacchetto Debian. Le dipendenze dalle librerie Qt 5 verrà risolta automaticamente.
Tuttavia l'aspetto del programma potrebbe risultare non perfetto, vediamo ad esempio nella seguente figura:
I pulsanti in alto a destra (Show Sidebar, Browse, Tex Selection e Quick Annotations) non contengono l'icona relativa, così anche i quattro tab subito sotto (per Thumbnails, Annotations, Bookmarks e Contents). I pulsanti per pagina precedente e pagina successiva non hanno l'icona e sono quindi praticamente invisibili (sebbene funzionanti).
Per risolvere il problema è sufficiente installare il pacchetto Debian breeze-icon-theme; in questo modo si ottiene una visualizzazione corretta come segue:
Volendo è possibile installare anche il pacchetto breeze-cursor-theme, in questo modo l'applicazione utilizzerà i puntatori del mouse tipici dell'ambiente KDE (freccia, cursore testo, ecc.).
Altri programmi KDE beneficieranno delle icone installate, ad esempio l'emulatore terminale Konsole oppure l'editor di testi Kate.
Accesso SSH a vecchie installazioni
L'accesso SSH da una nuova installazione Debian 12 Bookworm verso vecchie installazioni (es. Debian 4 Etch) fallisce a causa delle impostazioni predefinite del client SSH, con messaggi del tipo:
Unable to negotiate with 83.149.110.120 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
oppure:
Unable to negotiate with 83.149.110.120 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
o anche:
debug1: Next authentication method: publickey debug1: Offering public key: /home/niccolo/.ssh/id_rsa RSA SHA256:... debug1: send_pubkey_test: no mutual signature algorithm
La soluzione è forzare uno o più dei seguenti parametri:
- KexAlgorithms
- HostKeyAlgorithms
- PubkeyAcceptedKeyTypes
ssh \ -o KexAlgorithms=+diffie-hellman-group1-sha1 \ -o HostKeyAlgorithms=+ssh-dss \ -o PubkeyAcceptedKeyTypes=+ssh-rsa \ root@83.149.110.120