Indice
libinput
dbgsym
net-tools
diventerà deprecato in
favore di iproute2
_netdev
è raccomandata quando si usano
dispositivi AoE (ATA over Ethernet)A volte i cambiamenti introdotti da un nuovo rilascio comportano effetti collaterali che non si possono ragionevolmente evitare o che espongono errori da altre parti. In questa sezione sono documentati i problemi noti. Si leggano anche le errata corrige, la documentazione dei pacchetti interessati, le segnalazioni di errori e altre informazioni riportate in Sezione 6.1, «Ulteriori letture».
Questa sezione tratta le voci relative all'aggiornamento da jessie a stretch.
![]() | Nota |
---|---|
Questa sezione riguarda solo i sistemi che usano un kernel personalizzato in
cui |
Il montaggio di /usr
usando solamente strumenti che si
trovano in /
non è più supportato. Ciò funzionava in
passato solamente per poche configurazioni specifiche e ora sono
esplicitamente non supportate.
Questo significa che per stretch tutti i sistemi in cui
/usr
è una partizione separata devono usare un
generatore di initramfs che monti /usr
. Tutti i
generatori di initramfs in stretch lo fanno.
I mirror ospitati da Debian smetteranno di fornire l'accesso via FTP. Se si
usa il protocollo ftp:
nel proprio file sources.list,
migrare a http:
. Per la migrazione, guardare l'esempio
seguente:
deb http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian-security stretch/updates main # tor variant (requires apt-transport-tor) # deb tor+http://vwakviie2ienjx6t.onion/debian stretch main # deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates main
Gli esempi soprastanti non includono non-free
e
contrib
. Se si ha necessità di avere queste componenti
abilitate, ricordarsi di includerle.
Per maggiori informazioni fare riferimento all'annuncio: Chiusura dei servizi FTP pubblici.
Quello che segue è un elenco di pacchetti obsoleti noti e degni di nota (vedere Sezione 4.8, «Pacchetti obsoleti» per una descrizione).
L'elenco dei pacchetti obsoleti comprende:
La maggior parte dei pacchetti -dbg
è stata rimossa
dall'archivio principale. Sono stati sostituiti da pacchetti
-dbgsym
che sono disponibili dall'archivio
debian-debug
. Vedere Sezione 2.2.8, «Un nuovo archivio per i simboli di debug».
I gestori di password fpm2
e
kedpm
non sono più mantenuti dagli
autori originali a monte. Usare un altro gestore di password, come
pass
, keepassx
o keepass2
.. Assicurarsi di estrarre le proprie
password da fpm2
e kedpm
prima di rimuovere i pacchetti.
Il pacchetto net-tools
è ora
deprecato in favore di iproute2
. Vedere Sezione 5.3.9, «net-tools
diventerà deprecato in
favore di iproute2
» o
il manuale
Debian Reference per maggiori informazioni.
Gli strumenti di monitoraggio nagios3
sono stati rimossi da stretch. Il
pacchetto icinga
è il sostituto più
vicino. Legge i propri file di configurazione da un percorso diverso
rispetto a nagios, ma è per il resto compatibile.
Quando apt-get dist-upgrade
ha terminato, l'aggiornamento
è «formalmente» completo. Per l'aggiornamento a stretch
non ci sono azioni speciali necessarie prima di effettuare un riavvio.
In modo predefinito il compilatore GNU GCC 6 fornito da Debian Stretch compila tutti gli eseguibili come indipendenti dalla posizione. Ciò fornisce un alleggerimento da tutta una classe di vulnerabilità.
Sfortunatamente il kernel Linux fornito in Debian 8 (fino a 8.7) ha un
problema che fa sì che alcuni programmi compilati come eseguibili
indipendenti dalla posizione vadano in crash riportando un errore non
descrittivo come segmentation fault
. Questo problema è
stato risolto nella versione di Linux fornita in 8.8 (versione 3.16.43 o
successive) e nel kernel fornito in Debian 9 (versione 4.9 o successive).
We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel from Debian 8.8 or newer, you are not affected by this issue.
Se si sta eseguendo una versione affetta dal problema del kernel durante l'aggiornamento è fortemente raccomandato fare un riavvio con kernel di stretch immediatamente dopo l'aggiornamento per evitare di incontrare questo problema.
![]() | Nota |
---|---|
Questa sezione è principalmente rivolta agli sviluppatori o agli amministratori di sistema. Gli utenti desktop difficilmente saranno interessati dal problema descritto in questa sezione. |
Quanto detto sopra porta anche ad alcuni cambiamenti che è bene conoscere.
Lo strumento file (tra gli altri) classifica tali binari come «oggetti condivisi» invece che come «eseguibili». Se si hanno filtri basati su file binari, potrebbe essere necessario aggiornarli (es. filtri anti-spam).
Anche le librerie statiche compilate in un eseguibile ora devono essere compilate come codice indipendente dalla posizione. Il seguente messaggio di errore da un linker è un sintomo di un problema relativo a questo:
relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
Notare che anche se il messaggio di errore riporta -fPIC è sufficiente ricompilare con -fPIE (che è il valore predefinito nei pacchetti GCC 6 che fanno parte di stretch).
Storicamente gli eseguibili indipendenti dalla posizione sono stati
associati su certo hardware ad una perdita di prestazioni. In particolare
per l'architettura Debian i386
(macchine Intel a 32
bit). Mentre GCC 5 e GCC 6 hanno fortemente migliorato
le prestazioni per eseguibili indipendenti dalla posizione su Intel a 32
bit, questa ottimizzazione potrebbe non essere applicabile a tutte
le architetture. Considerare di valutare le prestazioni del proprio codice
se si ha come obiettivo architetture di macchine con un numero molto
limitato di registri.
A causa di una mancanza di interessa e di testabilità, Debian ha rimosso la stragrande maggioranza dei pacchetti di compatibilità LSB (Linux Standard Base).
Debian continuerà a fornire poche utilità chiave LSB selezionate utilizzate
internamente ed esternamente, come lsb-release
e le funzioni init di sysvinit in
lsb-base
. Inoltre Debian conferma la
sua forte adesione alla versione
2.3 del Filesystem Hierarchy Standard (FHS) con le modifiche minori
descritte nel manuale Debian Policy.
Il supporto per MIPS a 32 bit (sia big endian sia little endian) richiede ora un processore che supporti il MIPS32 Release 2 dell'insieme di istruzioni MIPS. In particolare Loongson-2E/2F e i sistemi basati su essi (incluso il laptop Yeeloong) non sono più supportati.
Il seguente script di shell può essere utilizzato per vedere se la propria macchina gestisce R2 (assumendo di avere un solo tipo di processore presente). Notare che i processori Loongson-3 sono supportati anche se dicono di gestire solamente MIPS32 Release 1.
if grep -E -q '^isa.*\bmips(32|64)r2\b' /proc/cpuinfo; then echo "OK (R2 supportato)" elif grep -q '^cpu model.*\bICT Loongson-3\b' /proc/cpuinfo; then echo "OK (Loongson 3)" else echo "NON OK: R2 non supportato" fi
Ci sono alcuni pacchetti per i quali Debian non può garantire di fornire i backport minimi per ragioni di sicurezza. Questi verranno trattati nelle sottosezioni che seguono.
Notare che il pacchetto debian-security-support
aiuta a tenere traccia
dello stato del supporto di sicurezza per i pacchetti installati.
Debian 9 contiene diversi motori per browser che sono affetti da varie vulnerabilità di sicurezza. L'alto tasso di vulnerabilità e la parziale mancanza di supporto a lungo termine da parte degli autori originali complica l'attività di supporto di questi browser tramite l'applicazione delle correzioni di sicurezza alle versioni precedenti. Inoltre la dipendenza reciproca delle librerie rende impossibile aggiornare a una nuova versione. Perciò, in stretch sono presenti browser basati sui motori webkit, qtwebkit e khtml, ma non sono coperti dal supporto di sicurezza. Non si dovrebbe usare questi browser con siti web non fidati.
Per un browser web di uso generico si raccomanda Firefox oppure Chromium.
Chromium, pur essendo costruito sul codice Webkit, è un pacchetto foglia che verrà mantenuto aggiornato ricompilando i rilasci correnti di Chromium per stable. Firefox e Thunderbird verranno anch'essi mantenuti aggiornati ricompilando i rilasci ESR correnti per stable.
La piattaforma Node.js è costruita sulla base di libv8-3.14
che ha un grande volume di problemi
di sicurezza ma al momento non ci sono volontari all'interno del progetto o
nel Team di sicurezza sufficientemente interessati e con la volontà di
investire la grande quantità di tempo richiesto per limitare questi problemi
in arrivo.
Sfortunatamente ciò significa che libv8-3.14
, nodejs
e l'ecosistema di pacchetti node-*
associati attualmente non dovrebbe essere usato con contenuti non fidati,
come dati non ripuliti presi da Internet.
In aggiunta questi pacchetti non riceveranno alcun aggiornamento di sicurezza durante la vita del rilascio stretch.
Nella maggior parte dei casi i pacchetti dovrebbero aggiornarsi senza problemi da jessie a stretch. C'è un numero limitato di casi dove può essere necessario un qualche intervento, prima o durante l'aggiornamento; questi casi sono descritti in dettaglio di seguito, pacchetto per pacchetto.
Il rilascio di OpenSSH 7 ha disabilitato in modo predefinito alcuni vecchi cifrari e il protocollo SSH1. Fare attenzione quando si aggiornano macchine a cui si ha accesso solo via SSH.
Inoltre il valore predefinito dell'opzione di configurazione "UseDNS" è stato cambiato da si a no. Ciò può far sì che gli utenti che usano la funzionalità "from=" in authorized_keys per limitare l'accesso ssh in base all'host rimangano bloccati fuori, il che è particolarmente problematico se si aggiorna da remoto.
Fare riferimento alla documentazione di OpenSSH per maggiori informazioni.
Questa sezione copre alcune delle modifiche incompatibili ad APT che potrebbero influenzare il sistema.
APT ora cerca di liberarsi di tutti i privilegi di root prima di recuperare i file dai mirror. APT può rilevare alcuni casi d'uso comuni dove ciò porterebbe a un fallimento e ripiega sul recuperare il materiale come root dando un avvertimento. Tuttavia può non riuscire a rilevare alcune configurazioni particolari (es. regole di firewall specifiche per UID).
Se si incontrano problemi con questa funzionalità, diventare l'utente
_apt
e controllare che:
abbia accesso in lettura ai file in /var/lib/apt/lists
e /var/cache/apt/archives
;
abbia accesso in lettura all'archiviazione della fiducia di APT
(/etc/apt/trusted.gpg
e
/etc/apt/trusted.gpg.d/
);
possa risolvere nomi DNS e scaricare file. Esempi di metodi per testarlo sono:
# Dal pacchetto dnsutils (se si usa tor, controllare invece con tor-resolve). $ nslookup debian.org >/dev/null || echo "Cannot resolve debian.org" $ wget -q https://debian.org/ -O- > /dev/null || echo "Impossibile scaricare la pagina indice di debian.org"
Per problemi con DNS controllare che /etc/resolv.conf
sia leggibile.
APT 1.1 ha introdotto un nuovo motore di pin che corrisponde ora alla descrizione nella pagina di manuale.
Il vecchio motore assegnava una priorità di pin per pacchetto, quello nuovo assegna le priorità di pin per versione. Sceglie poi la versione con il più alto pin che non sia una retrocessione o che ha un pin > 1000.
Questo cambia l'effetto di alcuni pin, specialmente quelli negativi. In precedenza, fare il pin di una versione a -1 di fatto evitava che il pacchetto venisse installato (il pin del pacchetto era -1), ora evita solamente che venga installata la versione di questo pacchetto.
![]() | Nota |
---|---|
Questa sezione è rilevante solo se si hanno (o si intendono usare) repository di terze parti abilitati o se si mantiene un repository APT. |
Per migliorare la stabilità degli scaricamenti e garantire la sicurezza dei contenuti scaricati, APT ora ha per i repository APT i seguenti requisiti:
Il file InRelease deve essere disponibile.
Tutti i metadati devono includere almeno i codici di controllo SHA256 di tutti gli elementi. Ciò include la firma GPG del file InRelease.
Le firme del file InRelease devono essere fatte con una chiave di dimensione uguale o maggiore di 2048 bit.
Se ci si affida ad un repository di terze parti che non può conformarsi con i requisiti suddetti, invitare i responsabili ad aggiornare il proprio repository. Ulteriori informazioni sul file InRelease possono essere trovate sul Debian Wiki.
![]() | Nota |
---|---|
Questa sezione è rilevante solo se è stata toccata o si ha necessità di modificare la configurazione di input predefinita di Xorg. |
In jessi, il driver di input predefinito per Xorg è il driver
evdev
. In stretch, la scelta predefinita è modificata in
libinput
. Se si ha una configurazione di Xorg che si basa
sul driver evdev
, si deve convertirla al driver
libinput
o riconfigurare il sistema in modo che usi il
driver evdev
.
Quello che segue è un esempio di configurazione per
libinput
per abilitare la funzionalità
«Emulate3Buttons».
Section "InputClass" Identifier "mouse" MatchIsPointer "on" Driver "libinput" Option "MiddleEmulation" "on" EndSection
Inserirla in
/etc/X11/xorg.conf.d/41-middle-emulation.conf
,
riavviare il sistema (o riavviare il server X) e dovrebbe essere abilitata.
Il driver evdev
è sempre disponibile nel pacchetto
xserver-xorg-input-evdev
.
A causa della mancanza di manutenzione da parte degli autori a monte, il sistema init Upstart è stato rimosso da stretch. Se il proprio sistema fa affidamento su questo pacchetto, tenere a mente che non verrà aggiornato durante la vita di Debian 9 e che, a partire da Debian 10 (buster), i compiti upstart potrebbero essere rimossi dai pacchetti.
Considerare il passaggio a un sistema init supportato, come systemd o OpenRC.
![]() | Nota |
---|---|
Questa sezione è pensata principalmente per gli sviluppatori o le organizzazione che compilano i propri pacchetti Debian. |
La suite di strumenti debhelper genera ora in modo predefinito pacchetti
dbgsym
per i binari ELF. Se si sviluppano e impacchettano
binari, controllare che i propri strumenti supportino questo pacchetti extra
generati automaticamente.
Se si usa reprepro
si vorrà
aggiornare almeno alla versione 4.17.0. Per aptly
sarà necessaria almeno la versione 1.0.0
che sfortunatamente non è disponibile in Debian stretch.
Se i propri strumenti non sono in grado di lavorare in modo pulito con essi,
si può chiedere a debhelper di disabilitare questa funzionalità aggiungendo
«noautodbgsym
» nella variabile
DEB_BUILD_OPTIONS del proprio servizio di compilazione. Vedere la
pagina di manuale di dh_strip per ulteriori informazioni.
L'applicazione openssl si aspetta gli argomenti opzione prima degli argomenti non opzione. Per esempio questo non funziona più:
openssl dsaparam 2048 -out file
mentre questo lo fa ancora:
openssl dsaparam -out file 2048
Il comando openssl enc ha cambiato il digest predefinito (usato per creare la chiave dalla passphrase) da MD5 a SHA256. Il digest può essere specificato con l'opzione -md nel caso in cui vecchi file debbano essere decifrati con il nuovo OpenSSL (o viceversa).
I cifrari 3DES e RC4 non sono più disponibili per la comunicazione TLS/SSL. I server con link a OpenSSL non possono offrirli e i client non possono connettersi a server che offrono solo quelli. Ciò significa che OpenSSL e Windows XP non hanno alcun cifrario comune.
Il pacchetto libssl-dev
fornisce
file header per compilare con OpenSSL 1.1.0. L'API è cambiata molto ed è
possibile che il software non compili più. È disponibile una panoramica dei
cambiamenti. Se non si può aggiornare il proprio software c'è anche
libssl1.0-dev
che fornisce header
per OpenSSL 1.0.2.
![]() | Nota |
---|---|
Questa sezione riguarda il codice mantenuto al di fuori di Debian: script e moduli Perl locali, di terze parti od obsoleti. |
Alcuni moduli sono stati rimossi dal nucleo centrale di Perl e sono ora
forniti in pacchetti separati. Esempi degni di nota sono
CGI
, disponibile nel pacchetto libcgi-pm-perl
, e
Module::Build
, disponibile nel pacchetto libmodule-build-perl
.
La directory di lavoro corrente (.
) è stata rimossa
dall'elenco predefinito di directory per gli include:
@INC
. Questo può avere un effetto sull'uso di
require()
, do()
, ecc. in cui gli
argomenti sono file nella directory corrente.
Tutti i programmi e i moduli Perl forniti in Debian dovrebbero essere corretti per affrontare ogni incompatibilità causata da quanto detto; segnalare bug se ciò non è vero. Dato che la modifica è stata fatta in Perl 5.26.0, anche il software di terze parti dovrebbe iniziare ad essere corretto. Informazioni per gli sviluppatori su come correggere questo problema sono fornite nelle note di rilascio di Perl 5.26 (vedere la sezione SECURITY).
Se è necessario si può temporaneamente ripristinare .
in
@INC
globalmente commentando la riga in
/etc/perl/sitecustomize.pl
, ma lo si dovrebbe fare
solamente se si comprendono i potenziali rischi. Questa soluzione temporanea
verrà rimossa in Debian 10. Si può anche impostare la variabile
d'ambiente PERL_USE_UNSAFE_INC
in un contesto specifico,
ottenendo lo stesso effetto.
L'elenco completo delle modifiche in Perl a partire dalla versione in Debian 8 è disponibile in perl522delta e perl524delta.
Il pacchetto del linguaggio procedurale PostgreSQL PL/Perl in jessie è
incompatibile con la versione di Perl in stretch. Il pacchetto postgresql-plperl-9.4
verrà rimosso durante
l'aggiornamento, rendendo non funzionanti le procedure Perl lato
server. L'aggiornamento a PostgreSQL 9.6 non dovrebbe essere disturbato, le
procedure funzioneranno nel nuovo cluster PostgreSQL se è installato il
pacchetto postgresql-plperl-9.6
. Se
non si è sicuri, fare un backup dei propri cluster PostgreSQL 9.4 prima
dell'aggiornamento a stretch.
Il pacchetto net-tools
in modo
predefinito non fa più parte delle nuove installazioni data che la sua
priorità è stata abbassata da importante ad opzionale. È consigliato invece
agli utenti di usare il moderno insieme di strumenti iproute2
(che fa parte delle nuove installazioni
già da diversi rilasci). Se si preferisce continuare ad usare i programmi
net-tools
, li si può semplicemente
installare con
apt install net-tools
Quello che segue è un riassunto dei comandi net-tools insieme ai loro equivalenti per iproute2:
vecchi comandi net-tools | comandi iproute2 sostitutivi |
---|---|
arp | ip n (ip neighbor) |
ifconfig | ip a (ip addr), ip link, ip -s (ip -stats) |
iptunnel | ip tunnel |
nameif | ip link |
netstat | ss, ip route (per netstat -r), ip -s link (per netstat -i), ip maddr (per netstat -g) |
route | ip r (ip route) |
![]() | Nota |
---|---|
Questa sezione si applica solo ai sistemi che hanno dispositivi AoE (ATA over Ethernet). Se il sistema non monta alcuna condivisione di rete si può saltare questa sezione senza problemi. |
A causa di una ripulitura della gestione della deconfigurazione della rete,
i dispositivi AoE in uso non vengono più gestiti come atteso durante lo
spegnimento e ciò può risultare in blocchi o perdite di dati. Per mitigare
questa situazione è suggerito montare questi dispositivi usando l'opzione di
mount _netdev
. Tale opzione è disponibile anche quando si
usa lo swap via AoE.
Durante l'aggiornamento potrebbero essere visualizzati avvertimenti come:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72. Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.
Sono innocui e si verificano se perl-base
viene aggiornato prima del pacchetto
debconf
.
![]() | Nota |
---|---|
Questa sezione si applica solo ai sistemi che usano SELinux, che non è abilitato in modo predefinito. |
In stretch, l'archivio delle politiche SELinux è stato spostato da
/etc/selinux/
a
<nome_politica>
/var/lib/selinux/
.
Inoltre è cambiato il formato usato all'interno dell'archivio.
<nome_politica>
Le politiche fornite da Debian (ad esempio dal pacchetto selinux-policy-default
) verranno migrate
automaticamente. Tuttavia la migrazione delle politiche specifiche del
sistema deve essere fatta manualmente.
Il pacchetto semanage-utils
fornisce
lo script /usr/lib/selinux/semanage_migrate_store
per
fare questa transizione.
IET (iSCSI Enterprise Target), pacchettizzato nel pacchetto iscsitarget
nei precedenti rilasci, non è più in
Debian dato che non funziona con le versioni recenti del kernel e il
progetto non ha visto ultimamente alcuna attività di sviluppo.
Gli utenti di IET sono incoraggiati a passare allo stack LIO che è
completamente supportato in Debian Stretch. Il pacchetto targetcli-fb
fornisce l'utilità di
configurazione per il tarsget iSCSI LIO.
Dato che lo stack LIO è stato sviluppato indipendentemente da IET la configurazione deve essere migrata manualmente.