User Tools

Site Tools


doc:appunti:linux:sa:debian_upgrade

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:debian_upgrade [2023/10/02 16:24] – [Python] niccolodoc:appunti:linux:sa:debian_upgrade [2023/10/03 09:35] (current) – [Aggiornamento di vecchi backports] niccolo
Line 1: Line 1:
 ====== Debian Upgrade ====== ====== Debian Upgrade ======
  
-===== Aggiornamento da Debian 11 Bullseye a 12 Bookworm ===== +  * **[[debian_upgrade_11_12]]** 
- +  * **[[debian_upgrade_10_11]]** 
-==== Cambio dei repository ==== +  * **[[debian_upgrade_9_10]]**
- +
-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**: +
- +
-<file> +
-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 +
-</file> +
-==== 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: +
- +
-<code> +
-cipher AES-256-CBC +
-</code> +
- +
-==== PostgreSQL da 13 a 15 ==== +
- +
-In generale dovrebbe funzionare la procedura **pg_upgradecluster**. Vedere una descrizione dettagliata in **[[postgresql_upgrade]]** soprattutto se si hanno database con estensioni PostGIS. In estrema sintesi: +
- +
-<code bash> +
-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 +
-</code> +
- +
-==== 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: +
- +
-<code sql> +
-CONNECT mysql +
-SELECT * FROM time_zone_name; +
-</code> +
- +
-Si esegue quindi lo script per la popolazione delle tabelle: +
- +
-<code> +
-mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql +
-</code> +
- +
-=== Conversione database Cacti a Unicode === +
- +
-Collegarsi al database Cacti e eseguire: +
- +
-<code sql> +
-CONNECT cacti +
-ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +
-</code> +
- +
-Per consentire alla procedura PHP di aggiungere e/o modificare template ecc., si devono dare (temporaneamente) i seguenti permessi: +
- +
-<code bash> +
-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/ +
-</code> +
- +
-Al termine della procedura eseguire di nuovo lo script assegnando proprietario e gruppo a **root:root**. +
- +
-==== Python e pip3 install ==== +
- +
-Debian 12 aderisce al **[[https://peps.python.org/pep-0668/|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 **[[..:..:prog:kivy_debian_12_android_11#solving_the_pip3_install_problem|Solving the pip3 install problem]]**. +
- +
-===== Aggiornamento da Debian 10 Buster a 11 Bullseye ===== +
- +
-Si modifica il file /etc/apt/sources.list sostituendo **buster** con **bullseye**: +
- +
-<file> +
-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 +
-</file> +
- +
-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: +
- +
-<code> +
-apt update +
-apt full-upgrade +
-</code> +
- +
-Si possono fare le stesse operazioni anche con il front-end ''apt-get'': +
- +
-<code> +
-apt-get update +
-apt-get dist-upgrade +
-</code> +
- +
-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**: +
- +
-<code> +
-apt update +
-apt upgrade +
-</code> +
- +
-Alcuni pacchetti installati in precedenza potrebbero risultare marcati per **deinstall**, è necessario esaminare la lista ed eventualmente procedere alla loro reinstallazione: +
- +
-<code> +
-dpkg --get-selections | egrep -v '\binstall\b' +
-apt install <package1> <package2> ... +
-</code> +
- +
-==== 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: +
- +
-<code> +
-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 +
-</code> +
- +
-Nel cluster nuovo non dovrebbero esserci database in esecuzione (a parte ovviamente **postgres**, **template0** e **template1**): +
- +
-<code> +
-su - postgres +
-psql --cluster 13/main +
-postgres=# \l +
-</code> +
- +
-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): +
- +
-<code> +
-pg_dropcluster --stop 13 main +
-pg_upgradecluster 11 main +
-pg_dropcluster 11 main +
-</code> +
- +
-==== 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**. +
- +
-===== Aggiornamento da Debian 9 Stretch a 10 Buster ===== +
- +
-Anzitutto è opportuno allineare l'installazione all'ultima versione rilasciata di Buster. Poiché è installata la versione 10.9 ma è disponibile la 10.10 e la suite Buster è passata dalla condizione di **stable** o **oldstable**, il gestore di pacchetti segnala il seguente warning, impedendo l'aggiornamento: +
- +
-<code> +
-N: Repository 'http://ftp.debian.org/debian buster InRelease' +
-   changed its 'Version' value from '10.9' to '10.10' +
-E: Repository 'http://ftp.debian.org/debian buster InRelease' +
-   changed its 'Suite' value from 'stable' to 'oldstable' +
-N: This must be accepted explicitly before updates for this repository +
-   can be applied. See apt-secure(8) manpage for details. +
-</code> +
- +
-Una soluzione da riga di comando, da **eseguire una tantum** è la seguente: +
- +
-<code> +
-apt-get update --allow-releaseinfo-change +
-</code> +
- +
-Con questa forzatura è possibile procedere all'**update** e **upgrade** con il client preferito, ad esempio ''dselect'' oppure ''apt-get'' come in questo esempio: +
- +
-<code> +
-apt-get update +
-apt-get upgrade +
-</code>+
  
 ===== Conflitto fra repository diversi ===== ===== Conflitto fra repository diversi =====
Line 300: Line 79:
   * **[[https://wiki.debian.org/AptConfiguration|AptConfiguration]]**   * **[[https://wiki.debian.org/AptConfiguration|AptConfiguration]]**
   * **[[https://guide.debianizzati.org/index.php/Repository_&_pinning|Repository & pinning]]**   * **[[https://guide.debianizzati.org/index.php/Repository_&_pinning|Repository & pinning]]**
- 
-===== 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: 
- 
-<code> 
-dpkg --list | grep '~deb10u' 
-</code> 
- 
-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: 
- 
-<code> 
-apt update 
-apt list --upgradable 
-</code> 
- 
-Raramente si dovrà ricorrere all'aggiornamento manuale come indicato al paragrafo precedente. 
  
  
Line 336: Line 98:
  
  
-===== Cambiamenti da Debian 10 a Debian 11 ===== 
- 
-^ Vecchio pacchetto  ^ Sostituito da      ^ 
-| 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                | 
- 
-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**. 
  
doc/appunti/linux/sa/debian_upgrade.1696256665.txt.gz · Last modified: 2023/10/02 16:24 by niccolo