====== Aggiornamento da Debian 12 Bookworm a 13 Trixie ====== ===== Update e upgrade ===== ==== Aggiornamento corrente ==== apt update apt upgrade apt --purge autoremove ==== Cambio dei repository ==== deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware ==== Upgrade ==== apt update apt upgrade --without-new-pkgs apt full-upgrade ===== Syslog ===== Il sistema di logging predefinito è di **systemd-journald** installato dal pacchetto **systemd**. Non viene più installato il pacchetto **rsyslog** pertanto non vengono più creati i consueti file: * **/var/log/syslog** * **/var/log/kern.log** I log di sistema vengono creati secondo i criteri stabiliti in **/etc/systemd/journald.conf**, generalmente nella directory **/var/log/journal/**. Anzitutto è possibile decidere se i log di sistema debbano essere conservati in **memoria permanente** (opzione predefinita) oppure in **memoria volatile**. Per utilizzare memoria volatile è sufficiente impostare nel file di configurazione: [Journal] Storage=volatile Al restart del servizio systemd-journald viene creato la directory **/run/log/journal/** in **tmpfs**. Per limitare lo spazio utilizzato su memoria permanente (filesystem su disco) si possono usare diverse opzioni **%%System*%%**, per gestire lo spazio in memoria volatile si usano le omologhe **%%Runtime*%%**: ^ For persistent file system ^^ ^ SystemMaxUse | How much disk space the journal may use up at most. Default to **10%** of the partition where ''/var/log/journal/'' resides. | ^ SystemKeepFree | How much disk space systemd-journald shall leave free for other uses. | ^ SystemMaxFileSize | How large individual journal files may grow at most before rotating. | ^ SystemMaxFiles | How many individual journal files to keep at most in rotation. | ^ For volatile in-memory file system ^^ ^ RuntimeMaxUse | In Debian, the default ''/run/log/journal/'', resides into the ''/run'' tempfs. | ^ RuntimeKeepFree | | ^ RuntimeMaxFileSize | | ^ RuntimeMaxFiles | | ^ Rotation ^^ ^ MaxFileSec | The maximum time to store entries in a single journal file before rotating to the next one. Use it to ensure that not too much data is lost at once when old journal files are deleted. | ^ MaxRetentionSec | The maximum time to store journal entries. If you need a retention shorter than the one imposed by SystemMaxUse. | This is an example on how to limit the disk space used and to determine rotaton policy (rotate once a day, keep 366 files i.e. one year): [Journal] SystemMaxUse=7G SystemKeepFree=2G SystemMaxFileSize=256M SystemMaxFiles=366 MaxFileSec=1day ===== Cambiamenti nei comandi ===== ==== ifconfig ==== Il comando **ifconfig** non viene installato per default, un sostituto moderno potrebbe essere: ip address show Per chi volesse avere il comando legacy compatibile, si installa il pacchetto **net-tools**, che installa l'eseguibile in **/usr/sbin/** e **/sbin/**. ==== sniffit ==== Il pacchetto **sniffit** era presente in Debian 12 Bookworm con la versione **0.5**, ma non è entrato in Debain 13 Trixie. Per fortuna il vecchio pacchetto **sniffit_0.5-3_amd64.deb** di Debian 12 si installa senza problemi nella nuova release e funziona correttamente. Pare che anche il pacchetto **sniffit_0.6-1_amd64.deb** di testing/forky si installi e funzioni senza problemi. Invece il pacchetto ''sniffit_0.7-1_amd64.deb'' **non funziona** (non produce i file con il dump della session). ==== mitmproxy ==== Il pacchetto **mitmproxy** era presente con la versione **8.1.1** in Debian 12 Bookworm, ma non è entrato in Trixie. Per fortuna in **testing/forky** esiste il pacchetto **mitmproxy_8.1.1-4_all.deb** che si installa in Trixie, con la semplice aggiunta di un **%%apt install --fix-broken%%**. ==== ntp ==== Già in Debian 12 alcuni pacchetti relativi a **ntp** erano //transitional packages// utilizzati per passare ai pacchetti **ntpsec**, questo l'elenco completo delle transizioni: * **ntp** => **ntpsec** * **ntpdate** => **ntpsec-ntpdate** * **sntp** => **ntpsec-ntpdig** In generale sarà sufficiente aver installato i pacchetti * **ntpsec** - Contiene il demone principale ntpd e diverse utility come **ntptime**, **ntptrace**, ecc. * **ntpsec-ntpdig** - Contiene l'utility **ntpdig**. Se ci si accontenta di un servizio minimalista per la sincronizzazione dell'ora è sufficiente installare il singolo pacchetto (alternativo a ntpsec): * **systemd-timesyncd** ==== last ==== Il comando **last** dal pacchetto **util-linux** non c'è più: **[[https://www.debian.org/releases/trixie/release-notes/issues.html#the-last-lastb-and-lastlog-commands-have-been-replaced|The last, lastb and lastlog commands have been replaced]]**. Il comando alternativo è: wtmpdb last Una installazione ex-novo dovrebbe creare il link simbolico che riproduce il vecchio comportamento: lrwxrwxrwx 1 root root 6 Oct 20 20:32 /usr/bin/last -> wtmpdb ===== gamin ===== **gamin** and **libgamin0** ===== SSH key exchange ===== Alcuni client non troppo aggiornati potrebbero avere problemi a collegarsi via **SSH** alla nuova Debian 13 Trixie, **journalctl** potrebbe indicare un messaggio di errore del tipo: sshd-session[98743]: Unable to negotiate with 14.156.24.17 port 60053: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [preauth] Per vedere i key exchange methods abilitati: sshd -T | grep kexalgorithms Per aggiungerne uno si può aggiungere una riga a **/etc/ssh/sshd_config.d/90-local.conf**: KexAlgorithms +diffie-hellman-group-exchange-sha256 ===== Python ===== La nuova versione di Python è più stringente su alcune sintassi, ad esempio quando si usano espressioni regolari contenenti caratteri escape si potrebbe incappare in warning del tipo: SyntaxWarning: invalid escape sequence '\s' Tutte le stringhe utilizzate in espressioni del tipo: re.compile('\regex-string\') devono usare stringhe //raw//, quindi con la sintassi: re.compile('r\regex-string\') ===== Errore in Bash completion ===== Quando si esegue il completamento-tab di un comando Bash si ottiene in alcuni casi l'errore **%%_split_longopt: command not found%%**. Pare che il problema derivi dal fatto che la funzione **%%_split_longopt()%%** è stata tolta dal file **/usr/share/bash-completion/bash_completion**, ma diversi file in **%%/usr/share/bash-completion/completions/*%%** fanno riferimento ancora ad essa. Il workaround più veloce è definire la funzione mancante in **$HOME/.bashr**: # Workaround for bug "bash: _split_longopt: command not found" _split_longopt() { _comp__split_longopt "$@"; } * **[[https://unix.stackexchange.com/questions/781758/split-longopt-command-not-found-when-trying-tab-completion|"_split_longopt: command not found" when trying tab-completion]]** ===== OpenVPN ===== Come per l'aggiornamento **[[debian_upgrade_11_12#openvpn_bf-cbc_not_supported|da Debian 11 a Debian 12]]** una connessione OpenVPN potrebbe non partire con questo messaggio d'errore: Cipher BF-CBC not supported Nel corrispondente file .conf è possibile aggiungere la seguente opzione, che ovviemente deve essere supportata anche dall'altra estremità: cipher AES-256-CBC ===== iproute2 ===== Sono scomparsi i file di configurazione **%%/etc/iproute2/*%%**. ad esempio il file **/etc/iproute2/rt_tables** usato per configurare il source routing con un host dual-homed. ===== udisks2.service ===== Il servizio udisks2.service viene attivato di default e monta automaticamente FIXME. ===== Pager e ANSI color escape sequences ===== Alcuni comandi - ad esmepio **apt search** oppure **git** - mostrano il loro output su terminale testuale utilizzando i colori tramite codici escape ANSI. Quando tale output viene visualizzato una pagina per volta tramite un ridirezione pipe su **pager** (programma che è normalmente linkato a **less** su Debian) il programma se ne accorge e non produce i codici colore ANSI. In Debian 13 Trixie alcuni comandi - come appunto ''apt search'' - hanno attivato la funzione di pager per default e l'output viene automaticamente dato in pasto a **pager**. Se per caso l'utente ha configurato la variabile d'ambiente **$LESS** (nel caso mio era impostata a **%%-i%%** per ignorare la capitalizzazione nelle ricerche) il pager non interpreta i codici colore ANSI e produce un risultato del tipo: apt search kodi ESC[32mkodiESC[0m/testing,now 3:21.2+dfsg-4+rpt1 arm64 [installed] Open Source Home Theatre (executable binaries) ESC[32mkodi-addons-devESC[0m/testing 3:21.2+dfsg-4+rpt1 arm64 Open Source Home Theatre (addon development package) La soluzione è aggiungere il parametro **%%-R%%** alla variabile **$LESS**: export LESS='-iR'