Capitolo 5. Problemi di cui essere al corrente per stretch

Indice

5.1. Upgrade specific items for stretch
5.1.1. Il montaggio ritardato di /usr non è più supportato
5.1.2. L'accesso FTP ai mirror ospitati da Debian verrà rimosso
5.1.3. Pacchetti obsoleti degni di nota
5.1.4. Deprecated components for stretch
5.1.5. Cose da fare dopo l'aggiornamento prima di riavviare
5.1.6. Gli eseguibili sono adesso compilati in modo predefinito come eseguibili indipendenti dalla posizione (PIE, Position Independent Executable).
5.1.7. La maggior parte dei pacchetti di compatibilità con LSB sono stati rimossi
5.2. Limitazione nel supporto per la sicurezza
5.2.1. Stato della sicurezza dei browser web
5.2.2. Mancanza di supporto di sicurezza per l'ecosistema di libv8 e Node.js
5.3. Problemi relativi a specifici pacchetti
5.3.1. Protocollo SSH1 e cifrari più vecchi disabilitati in OpenSSH in modo predefinito
5.3.2. Modifiche potenziamente incompatibili all'indietro in APT
5.3.3. Changes to the Xorg graphical environment
5.3.4. Upstart rimosso
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. Cambiamenti relativi a OpenSSL
5.3.7. Modifiche a Perl che possono rendere non funzionante software di terze parti
5.3.8. Incompatibilità PostgreSQL PL/Perl
5.3.9. net-tools will be deprecated in favor of iproute2
5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices
5.3.11. Harmeless «Unespaced ... in regex is deprecated, ...» warnings during upgrade

Sometimes, changes introduced in a new release have side-effects we cannot reasonably avoid, or they expose bugs somewhere else. This section documents issues we are aware of. Please also read the errata, the relevant packages' documentation, bug reports, and other information mentioned in Sezione 6.1, «Ulteriori letture».

5.1. Upgrade specific items for stretch

This section covers items related to the upgrade from jessie to stretch.

5.1.1. Il montaggio ritardato di /usr non è più supportato

[Nota]Nota

Questa sezione riguarda solo i sistemi che usano un kernel personalizzato in cui /usr è in un punto di montaggio separato da /. Se si usano i pacchetti del kernel forniti da Debian non si è affetti da questo problema.

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.

This means that for stretch all systems where /usr is a separate partition need to use an initramfs generator that will mount /usr. All initramfs generators in stretch do so.

5.1.2. L'accesso FTP ai mirror ospitati da Debian verrà rimosso

Debian hosted mirrors will stop providing FTP access. If you have been using the ftp: protocol in your sources.list, please migrate to http:. Please consider the following example for migrating:

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.

5.1.3. Pacchetti obsoleti degni di nota

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:

5.1.4. Deprecated components for stretch

With the next release of Debian 10 (codenamed buster) some features will be deprecated. Users will need to migrate to other alternatives to prevent trouble when updating to 10.

Ciò include le seguenti funzionalità:

  • TODO: Add items if any

5.1.5. Cose da fare dopo l'aggiornamento prima di riavviare

Quando apt-get dist-upgrade ha terminato, l'aggiornamento è «formalmente» completo, ma ci sono alcune altre cose di cui ci si deve occupare prima del successivo avvio.


      add list of items here
      
    

5.1.6. Gli eseguibili sono adesso compilati in modo predefinito come eseguibili indipendenti dalla posizione (PIE, Position Independent Executable).

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à.

Unfortunately, the Linux kernel provided in Debian 8 (up to 8.7) has an issue that can cause some programs compiled as position independent executables to crash with a non-descriptive issue like segmentation fault. This issue is solved in the Linux version provided in 8.8 (version 3.16.43 or later) and in the kernel provided in Debian 9 (version 4.9 or later).

È raccomandato di aggiornare il kernel ad una versione con il problema risolto e poi di riavviare prima di fare l'aggiornamento a stretch. Se si sta eseguendo il kernel Debian 8.8 o uno successivo non si è affetti da questo problema.

If you are running an affected version of the kernel during the upgrade, we highly recommend that you perform a reboot into the stretch kernel right after the upgrade to avoid hitting this.

5.1.6.1. Behavior changes of PIE for system administrators and developers

[Nota]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.

  • The file tool (among others) will classify such binaries as «shared object» rather than an «executable». If you have filters based on binary files, these may need to be updated (e.g. spamfilters).

  • 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
    

    Note that even though the error message says -fPIC, it is sufficient to recompile with -fPIE (which is the default in the GCC 6 packages that are part of stretch).

  • Historically, position independent executables have been associated with performance loss on some hardware. Notably the Debian architecture i386 (32-bit Intel machines). While GCC 5 and GCC 6 have greatly improved performance for position independent executables on 32-bit Intel, this optimization may not be applicable to all architectures. Please consider evaluating the performance of your code if you are targeting machine architectures with a very limited number of registers.

5.1.7. La maggior parte dei pacchetti di compatibilità con LSB sono stati rimossi

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.

5.2. Limitazione nel supporto per la sicurezza

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.

Note that the package debian-security-support helps to track the security support status of installed packages.

5.2.1. Stato della sicurezza dei browser web

Debian 9 includes several browser engines which are affected by a steady stream of security vulnerabilities. The high rate of vulnerabilities and partial lack of upstream support in the form of long term branches make it very difficult to support these browsers with backported security fixes. Additionally, library interdependencies make it impossible to update to newer upstream releases. Therefore, browsers built upon the webkit, qtwebkit and khtml engines are included in stretch, but not covered by security support. These browsers should not be used against untrusted websites.

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.

5.2.2. Mancanza di supporto di sicurezza per l'ecosistema di libv8 e Node.js

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 addition, these packages will not receive any security updates during the lifetime of the stretch release.

5.3. Problemi relativi a specifici pacchetti

In most cases, packages should upgrade smoothly between jessie and stretch. There are a small number of cases where some intervention may be required, either before or during the upgrade; these are detailed below on a per-package basis.

5.3.1. Protocollo SSH1 e cifrari più vecchi disabilitati in OpenSSH in modo predefinito

The OpenSSH 7 release has disabled some older ciphers and the SSH1 protocol by default. Please be careful when upgrading machines where you only have SSH access.

Fare riferimento alla documentazione di OpenSSH per maggiori informazioni.

5.3.2. Modifiche potenziamente incompatibili all'indietro in APT

Questa sezione copre alcune delle modifiche incompatibili ad APT che potrebbero influenzare il sistema.

5.3.2.1. APT now fetches files as an unprivileged user (_apt)

APT will now attempt to discard all root privileges before fetching files from mirrors. APT can detect some common cases where this will fail and fall back to fetching things as root with a warning. However, it may fail to detect some exotic setups (e.g. UID-specific firewall rules).

If you experience issues with this feature, please change to the _apt user and check that it:

  • 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:

    # From the dnsutils package (if using tor, please check with tor-resolve instead).
    $ nslookup debian.org >/dev/null || echo "Cannot resolve debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Cannot download index page of debian.org"
    

    Per problemi con DNS controllare che /etc/resolv.conf sia leggibile.

5.3.2.2. Nuovo motore di pin di APT

APT 1.1 ha introdotto un nuovo motore di pin che corrisponde ora alla descrizione nella pagina di manuale.

The old engine assigned one pin priority per package; the new one assigns pin priorities per version. It then picks the version with the highest pin that is not a downgrade or that has a pin > 1000.

This changes the effect of some pins, especially negative ones. Previously, pinning a version to -1 effectively prevented the package from being installed (the package pin was -1); it now only prevents the version of this package from being installed.

5.3.2.3. Nuovi requisiti per repository APT

[Nota]Nota

Questa sezione è rilevante solo se si hanno (o si intendono usare) repository di terze parti abilitati o se si mantiene un repository APT.

To improve download stability and ensure security of the downloaded content, APT now requires the following from an APT repository:

  • The InRelease file must be available.

  • All metadata must include at least SHA256 checksums of all items. This includes the GPG signature of the InRelease file.

  • Signatures on the InRelease file should be done with a key size of 2048 bits or larger.

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.

5.3.3. Changes to the Xorg graphical environment

This section describes some of the major changes related to the Xorg graphical environment. It is mostly relevant to desktop systems or other systems providing a graphical (GUI) environment to users.

5.3.3.1. Il server Xorg non è più in modo predefinito setuid root

[Nota]Nota

This change only applies if your X Display Manager supports running X without root privileges (or if you start X manually via startx). Currently the only known display manager supporting this is gdm. Other display managers simply start X as root regardless of this change.

Questo riduce il rischio di una scalata di privilegi grazie a bug nel server X. Tuttavia, per funzionare, ha alcuni requisiti:

  • Richiede logind e libpam-systemd.

  • Richiede un driver video nel kernel (dato che Xorg non può più comunicare direttamente con l'hardware).

  • Richiede di essere in esecuzione sulla console virtuale da cui è stato avviato.

Quando eseguito come utente normale, il log di Xorg sarà disponibile in ~/.local/share/xorg/.

If these requirements cannot be met, please install the xserver-xorg-legacy package to reinstate the setuid Xorg.

5.3.3.2. Desktops will migrate to libinput Xorg driver

[Nota]Nota

This section is only relevant if you have tweaked or need to change the default Xorg input configuration.

In jessie, the default input driver for Xorg is the evdev driver. In stretch, the default has changed to libinput. If you have Xorg configuration that relies on the evdev driver, you will either have to convert it to the libinput driver or reconfigure your system to use the evdev driver.

The following is an example configuration for libinput to enable the «Emulate3Buttons» feature.

Section "InputClass"
        Identifier "mouse"
        MatchIsPointer "on"
        Driver "libinput"
        Option "MiddleEmulation" "on"
EndSection

Insert it into /etc/X11/xorg.conf.d/41-middle-emulation.conf, reboot (or restart your Xserver) and it should now be enabled.

The evdev driver is still available in the xserver-xorg-input-evdev package.

5.3.4. Upstart rimosso

Due to the lack of upstream maintainers, the Upstart init system has been removed from stretch. If your system relies on this package, you should note that it will not be updated during the lifetime of Debian 9, and starting from Debian 10 (buster), Upstart jobs may be removed from packages.

Please consider switching to a supported init system, like systemd or OpenRC.

5.3.5. The debhelper tool now generates dbgsym packages by default

[Nota]Nota

Questa sezione è pensata principalmente per gli sviluppatori o le organizzazione che compilano i propri pacchetti Debian.

The debhelper tool suite will now generate dbgsym packages by default for ELF binaries. If you develop and package binaries, please check that your tooling supports these extra auto-generated packages.

If you use reprepro, you want to upgrade it to at least version 4.17.0. For aptly, you will need at least version 1.0.0, which is unfortunately not available in Debian stretch.

Should your tooling be unable to cope with these gracefully, you can ask debhelper to disable this feature by adding «noautodbgsym» in the DEB_BUILD_OPTIONS variable of your build service. Please see the dh_strip manpage for more information.

5.3.6. Cambiamenti relativi a OpenSSL

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

The openssl enc command changed the default digest (used to create the key from passphrase) from MD5 to SHA256. The digest can be specified with the -md option in case old files need to be decrypted with newer OpenSSL (or the other way around).

The 3DES and RC4 ciphers are no longer available for TLS/SSL communication. Servers linked against OpenSSL can't offer them and clients can't connect to servers which offer only those. This means that OpenSSL and Windows XP share no common cipher.

The package libssl-dev provides header files to compile against OpenSSL 1.1.0. The API changed a lot and it is possible that the software won't compile anymore. There is an overview of the changes. If you can't update your software, there is also libssl1.0-dev which provides headers against OpenSSL 1.0.2.

5.3.7. Modifiche a Perl che possono rendere non funzionante software di terze parti

[Nota]Nota

This section applies to code maintained outside Debian - local, third-party, or legacy Perl scripts and modules.

  • 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.

  • The current working directory (.) has been removed from the default list of include directories, @INC. This may affect usage of require(), do(), etc., where the arguments are files in the current directory.

    All perl programs and module shipped by Debian should have been fixed to address any incompatibilities caused by the above; please file bugs if this is not the case. As the change has now been made in perl 5.26.0, third-party software should also start to be fixed. Information about how to fix this issue for developers is provided in the perl 5.26 release notes (see the SECURITY section).

    If needed you can temporarily reinstate . in @INC globally by commenting out the line in /etc/perl/sitecustomize.pl but you should only do this with a understanding of the potential risks. This workaround will be removed in Debian 10. You can also set the PERL_USE_UNSAFE_INC environment variable in a specific context which will have the same effect.

  • L'elenco completo delle modifiche in Perl a partire dalla versione in Debian 8 è disponibile in perl522delta e perl524delta.

5.3.8. Incompatibilità PostgreSQL PL/Perl

The PostgreSQL PL/Perl procedural language package in jessie is incompatible with the Perl version in stretch. The postgresql-plperl-9.4 package will be removed during the update, rendering server-side Perl procedures dysfunctional. Upgrading to PostgreSQL 9.6 should be unaffected; the procedures will work in the new PostgreSQL cluster if the postgresql-plperl-9.6 package is installed. If unsure, take a backup of your PostgreSQL 9.4 clusters before upgrading to stretch.

5.3.9. net-tools will be deprecated in favor of iproute2

The net-tools package is no longer part of new installations by default, since its priority has been lowered from important to optional. Users are instead advised to use the modern iproute2 toolset (which has been part of new installs for several releases already). If you still prefer to continue using the net-tools programs you can simply install it via

apt install net-tools

[Avvertimento]Avvertimento

Please keep in mind that net-tools may be uninstalled during the upgrade if it was only installed to satisfy a dependency. If you rely on net-tools, please remember to mark it as a manual installed package before the upgrade via:

apt-mark manual net-tools

Quello che segue è un riassunto dei comandi net-tools insieme ai loro equivalenti per iproute2:

vecchi comandi net-toolscomandi iproute2 sostitutivi
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (per netstat -r), ip -s link (per netstat -i), ip maddr (per netstat -g)
routeip r (ip route)

5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices

[Nota]Nota

This only applies to systems that have ATA over ethernet (AoE) devices mounted. If the system does not mount any network shares, you can safely skip this section.

Due to a cleanup in the handling of network deconfiguration, AoE devices in use are no longer handled as expected during shutdown, possibly resulting in hangs and/or data loss. To mitigate that situation, it is suggested to mount such devices using the _netdev mount option. That option is available when using swap over AoE as well.

5.3.11. Harmeless «Unespaced ... in regex is deprecated, ...» warnings during upgrade

During the upgrade, you may see some warning like:

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.

These are harmless and happens if perl-base is upgraded before the debconf package.