Kapitel 5. Problemområden att känna till för stretch

Innehållsförteckning

5.1. Upgrade specific items for stretch
5.1.1. Sen montering av /usr stöds inte längre
5.1.2. Tillgång till Debian-speglar via FTP tas bort
5.1.3. Föråldrade paket
5.1.4. Deprecated components for stretch
5.1.5. Att göra efter uppgradering före omstart
5.1.6. Körbara filer kompileras nu som positionsoberoende binärer (position independent executables, PIE) som standard
5.1.7. De flesta kompatibilitetspaketen för LSB har tagits bort
5.2. Begränsningar i säkerhetsstödet
5.2.1. Säkerhetsläget för webbläsare
5.2.2. Inget säkerhetsunderhåll för ekosystemet runt libv8 och Node.js
5.3. Paketspecifika problem
5.3.1. Äldre krypteringsmetoder och SSH1 inaktiverat i OpenSSH som standard
5.3.2. Förändringar som går att applicera på äldre versioner av APT
5.3.3. Changes to the Xorg graphical environment
5.3.4. Upstart borttaget
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. Ändringar med avsikt på OpenSSL
5.3.7. Förändringar i Perl som kan skada tredjepart mjukvara
5.3.8. Kompatabilitet 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 Avsnitt 6.1, ”Ytterligare läsning”.

5.1. Upgrade specific items for stretch

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

5.1.1. Sen montering av /usr stöds inte längre

[Notera]Notera

Detta avsnitt gäller endast system som använder en anpassad kärna där /usr är monterad separerad från /. Om du använder Debians paket för kärnan berörs du inte av detta problem.

Montering av /usr genom att endast använda verktyg som finns i / stöds inte längre. Detta har endast fungerat för ett fåtal specifika konfigurationer och stöds nu inte alls längre.

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. Tillgång till Debian-speglar via FTP tas bort

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 (kräver apt-transport-tor)
# deb  tor+http://vwakviie2ienjx6t.onion/debian          stretch            main
# deb  tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates    main

Ovanstående exempel inkluderar inte non-free and contrib. Lägg till dessa om du behöver komponenter därifrån.

Läs mer om detta i kungörelsen Nedstängning av publika FTP-tjänster.

5.1.3. Föråldrade paket

Detta är en lista med kända föråldrade paket (läs mer i Avsnitt 4.8, ”Föråldrade paket” för en beskrivning).

Listan med föråldrade paket inkluderar:

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.

Inklusive följande:

  • TODO: lägg till här

5.1.5. Att göra efter uppgradering före omstart

När apt-get dist-upgrade är klar innebär detta att den formella uppgraderingen klar men det finns några ytterligare saker att ta hand om före nästa omstart.


      en lista med grejjer ska läggas här
      
    

5.1.6. Körbara filer kompileras nu som positionsoberoende binärer (position independent executables, PIE) som standard

Som standard använder Debians version av kompilatorn GNU GCC 6 positionsoberoende binärer ("position independent executables", PIE). Detta leder till att vissa typer av säkerhetsrisker helt kan undvikas.

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

Du bör uppgradera till en korrigerad version innan uppgraderingen till stretch påbörjas. Om du använder kärnan från Debian 8.8 eller senare påverkas du inte av detta problem.

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

[Notera]Notera

Detta avsnitt riktar sig i huvudsak till utvecklare och systemadministratörer. Skrivbordsanvändare påverkas förmodligen inte av detta avsnitt.

Ovanstående leder också till några ändringar som är värda att känna till.

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

  • Statiska bibliotek som kompileras till körbara filer behöver också kompileras som positionsoberoende kod. Följande felmeddelande från länkaren är ett symptom på detta:

    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. De flesta kompatibilitetspaketen för LSB har tagits bort

Majoriteten av paketen för kompatibilitet med Linux Standards Base (LSB) har tagits bort från Debian på grund av bristande intresse och för att de var svårtestade.

Några utvalda nyckelpaket kommer alltjämt att tillhandahållas internt och externt, exempelvis lsb-release och sysvinits initieringsfunktioner i lsb-base. Vidare står Debian fast vid Filesystem Hierarchy Standard (FHS) version 2.3 med vissa mindre justeringar beskrivna i Debian Policy Manual (engelska).

5.2. Begränsningar i säkerhetsstödet

Det finns ett antal paket där Debian inte kan lova minimala bakåtporteringar för säkerhetsproblem. Dessa beskrivs närmare i underavsnitten.

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

5.2.1. Säkerhetsläget för webbläsare

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.

För generell webbsurfning rekommenderar vi Firefox eller Chromium.

Chromium - trots att den bygger på kodbasen Webkit - är ett löv-paket. Detta paket hålls uppdaterat genom att den aktuella Chromium-utgåvan byggs om för Debians stabila utgåva. Firefox och Thunderbird kommer också att hållas uppdaterat genom att den aktuella ESR-utgåvan byggs om för Debian stabila utgåva.

5.2.2. Inget säkerhetsunderhåll för ekosystemet runt libv8 och Node.js

Node.js bygger på libv8-3.14 som har haft en stor mängd säkerhetsproblem. Det finns inga frivilliga inom projektet eller säkerhetsteamet som är intresserade nog att lägga ned den stora tid det krävs för att mota alla dessa problem.

Detta betyder således att libv8-3.14, nodejs och paket på formen node-* inte ska användas tillsammans med otillförlitlig data, exempelvis data från internet som inte har kontrollerats innehållsmässigt.

In addition, these packages will not receive any security updates during the lifetime of the stretch release.

5.3. Paketspecifika problem

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. Äldre krypteringsmetoder och SSH1 inaktiverat i OpenSSH som standard

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.

Läs mer i dokumentationen för OpenSSH för mer information.

5.3.2. Förändringar som går att applicera på äldre versioner av APT

Detta avsnitt beskriver några ändringar i APT som inte är kompatibla med äldre versioner och som kan påverka ditt system.

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:

  • har läsrättighet till filer i /var/lib/apt/lists och /var/cache/apt/archives.

  • har läsrättighet till APT:s förtroendearkiv (/etc/apt/trusted.gpg och /etc/apt/trusted.gpg.d/)

  • kan slå upp DNS-namn och hämta filer. Exempel på metoder för att testa:

    # 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"
    

    För problem med DNS kontrollera att /etc/resolv.conf är läsbar.

5.3.2.2. Ny motor för att nåla fast paket i APT

I APT 1.1 finns en ny motor för att hantera fastnålade paket, denna motsvarar vad som beskrivs i manualen.

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. Nya krav för APT-förråd

[Notera]Notera

Detta avsnitt är bara tillämpbart om du har använt (eller kommer att använda) förråd från tredjepart eller om du tillhandahåller ett APT-förråd.

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.

Om du förlitar dig på ett tredjeparts förråd som inte kan lösa ovanstående så bör du be dem uppgradera sitt förråd. Mer information om InRelease-filen kan hittas på Debians Wiki (engelska).

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. Xorg-servern kör inte längre med setuid root som standard

[Notera]Notera

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.

Detta minskar risken för eskalering av privilegiera via fel i X servern. Det krävs dock några detaljer för att fungera:

  • logind och libpam-systemd behövs.

  • En drivrutin för video i kärnan (eftersom Xorg inte kan prata direkt med hårdvaran längre).

  • Den behöver köra på den virtuella konsoll som den startade från.

Loggfilen för Xorg kommer att placeras i ~/.local/share/xorg/ om servern körs från en vanlig användare.

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

[Notera]Notera

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 borttaget

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

[Notera]Notera

Detta avsnitt vänder sig främst till utvecklare och organisationer som bygger sina egna debian-paket.

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. Ändringar med avsikt på OpenSSL

Programmet openssl förväntar sig flaggor före icke-flaggor. Bland annat så fungerar inte detta längre:

openssl dsaparam 2048 -out file

medan detta fungerar:

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. Förändringar i Perl som kan skada tredjepart mjukvara

[Notera]Notera

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

  • Vissa moduler har tagits bort från Perls kärna och levereras nu i separata paket. Exempelvis CGI i paketet libcgi-pm-perl och Module::Build genom 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.

  • En komplett lista med ändringar i Perl sedan versionen i Debian 8 kan studeras på engelska i perl522delta och perl524delta.

5.3.8. Kompatabilitet 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

[Varning]Varning

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

Här följer en lista med net-tool-kommandon och deras motsvarighet i iproute2:

net-tools-kommandoersättning i iproute2
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (för netstat -r), ip -s link (för netstat -i), ip maddr (för netstat -g)
routeip r (ip route)

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

[Notera]Notera

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.