What's new in the Stretch (Debian 9) release?
(Also see the official stretch release notes.)
- Linux kernel series 4.9, GNU libc 2.24.
Linux kernel series 4.19 is available from backports.
- Desktop environments: GNOME 3.22, KDE Plasma 5.8, MATE 1.16, Xfce 4.12 and others.
- Programming languages: GCC 6.3, Perl 5.24, Python 3.5, PHP 7.0 and others.
GnuPG 2.1 is now default.
Flatpak support to install third party software.
First stable release of FreedomBox.
If you install fresh instead of upgrading...
Network interfaces will have predictable names (predictable by software, not by humans) instead of the familiar eth0, wlan0, etc. If you don't want this, there are at least two ways to go back to the old interface names:
Add net.ifnames=0 to the GRUB_CMDLINE_LINUX variable in /etc/default/grub, run update-grub, and reboot.
Run ln -s /dev/null /etc/systemd/network/99-default.link and reboot.
iproute2 (ip(8)) is installed by default, but net-tools (ifconfig(8) et al.) is not. The net-tools commands have been deprecated for some time now, and users are encouraged to switch to iproute2 commands.
- Graphical installer is default with better support for translations, right-to-left and non-latin languages.
- Architectures: mips64el added, powerpc removed.
- The CD image set was retired, only netinst and single CD XFCE stay (all DVD images remain).
- Multi-arch (amd64+i386) images default to amd64 installation on supported hardware.
The dmesg command requires superuser privileges. Add "kernel.dmesg_restrict = 0" to /etc/sysctl.conf to revert back.
The X server is no longer setuid, and may be started without root privileges. If the startx command is run as a non-root user, the Xorg.0.log (or Xorg.*.log for alternative displays) file will be written to ~/.local/share/xorg/ instead of /var/log/.
All MySQL packages have been superseded by equivalent MariaDB packages (e.g. mariadb-server-10.1). The mysql-server and default-mysql-server metapackages are transitional, and will bring in the MariaDB server.
Most of the library packages with debugging symbols have been moved to a new repository. If you require these packages, you will need to add an entry to your sources.list or sources.list.d. Also note that the package names are different (ending with -dbgsym instead of -dbg).
For many Intel graphics chipsets, the Stretch X server will use the modeset driver instead of the intel driver. The modeset driver may require non-free firmware (firmware-misc-nonfree) to activate features, even on systems which did not use this firmware under Jessie.
For some older graphics chipsets, support has been relegated to "legacy drivers", which require the old setuid X server to run. Install xserver-xorg-legacy if you require one of these drivers.
Users of laptops with a touchpad, running GNOME, may find that the touchpad does not work. If this happens to you, try installing xserver-xorg-input-libinput and removing xserver-xorg-input-synaptics if it is installed. See this debian-devel post for details.
Users of the heirloom-mailx package should beware: in stretch, heirloom-mailx has become a transitional package bringing in s-nail. However, the s-nail package does not provide mailx. If you have scripts which call mailx -a attachfile ... you will need to rewrite those scripts, or manually change the /etc/alternatives/mailx symlink. (update-alternatives will not work.) See also bugs 858080 and 846062.
The jessie version of the /etc/ntp.conf file used by ntp will not work on stretch. If you modified ntp.conf, you must either merge your changes into the new default config file, or merge the new restrict source line (with the comment "Needed for adding pool entries" before it) into your old config file. This only affects you if you're using pool lines (which are used by default) and you modified the ntp.conf file locally. Also note systemd provides timedatectl which serves as an NTP client even when there's no network.
The upgrade from MySQL to MariaDB may require you to run the mysql_upgrade command. If you see errors like Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set... in /var/log/mysql/error.log, this is probably your first step.
The upgrade from MySQL to MariaDB may also require you to change user passwords from the "old" format to the "new" format. If you get errors like Server is running in --secure-auth mode, but 'wikiuser'@'localhost' has a password in the old format; please change the password to the new format upon connection, try resetting the user's password.
The net-tools package is not installed by default, but if you do install it, be warned that its output format has changed. If you're installing it because some third party script is parsing its output, that script is likely to fail. There is no backward compatibility option.