Debian8 Upgrade

Aus Wiki
Zur Navigation springen Zur Suche springen

Allgemein

Debian 8.0 (Jessie) wurde am 25.04.2015 offiziell in finaler Form freigegeben. Vor dem Upgrade empfiehlt es sich, dringend ein Backup anzufertigen, da bei einem Upgrade immer etwas schief gehen kann, das bis zur kompletten Unfähigkeit des Bootens führen könnte.

Der Upgrade-Prozeß ist im Detail hier: https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.de.htmll beschrieben. Deshalb sollen im Folgenden nur einzelne Aspekte besprochen werden.


Vorbereitung

System auf neuesten Stand bringen

Alle Pakete sollten auf dem neuesten Stand sein, bevor der Upgradevorgang gestartet wird:

apt-get update
apt-get dist-upgrade


Paketquellen updaten

vi /etc/apt/sources.list

Alle Verweise der Debian-Quellen von Wheezy auf Jessie umstellen:

deb http://ftp.de.debian.org/debian/ jessie main non-free contrib
deb-src http://ftp.de.debian.org/debian/ jessie main non-free contrib

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie /updates main contrib non-free

deb http://ftp.de.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.de.debian.org/debian/ jessie-updates main contrib non-free

Falls weitere Quellen aufgeführt sind, prüfen, ob auch für diese Jessie-Pakete bereit stehen.


Upgrade vorbereiten

apt-get update
apt-get upgrade
apt-get install dpkg apt

Eine ganze Reihe von Paketen werden aktualisiert.

Kernel aktualisieren

Dieser Schritt ist nicht für virtuelle LXC-Container nötig.

apt-cache search linux-image

Eine ganze Zahl von verfügbaren Kerneln wird aufgelistet. Einen zum aktuellen System passenden Kernel auswählen und installieren (z.B. linux-image-3.16.0-4-amd64)

apt-get install linux-image-3.16.0-4-amd64

Und dazu passend die Linux-Header-Files:

apt-get install linux-headers-3.16.0-4-amd64


Upgrade finalisieren

apt-get update
apt-get upgrade
apt-get dist-upgrade

Rechner neu starten


Version prüfen

Debian Version

cat /etc/debian_version

Die Ausgabe sollte 8.0 oder neuer sein

Kernel Version

uname -a

Es sollte eine eine Kernelversion 3.16 oder neuer ausgegeben werden


Hinweise zum Upgrade einzelner Pakete

Hier einige Hinweise, die aus persönlichen Upgrade-Erfahrungen resultieren.


Apache2

Bei Jessie kommt Apache2 in Version 2.4 zum Einsatz, der Anpassungen an der Konfiguration (Virtualhosts und Einträge unter conf.d) erfordert.

Apache2.2

order allow,deny
allow from all

enspricht unter Apache2.4:

Require all granted

Apache2.2

order deny,allow
deny from all

enspricht unter Apache2.4:

Require all denied

Weitere Hinweise sollten der Apache Dokumentation entnommen werden: http://httpd.apache.org/docs/2.4/upgrading.html


Mediawiki

Mediawiki verwendet Perl kompatible Regular Expressions (PCRE), die in der Jessie-Version (2.8.35) ein Problem mit der von älteren Mediawiki Versionen (z.B. 1.16WMF, die bis dato hier verewndet wurde) eingesetzten Syntax hat. Folge: Mediawikis stellt keine Inhalte (Texte) mehr dar. Abhilfe: Aktuelle Mediawiki-Version einsetzen, bei der dieses Problem behoben wurde.

Details siehe: Upgrade Mediawiki von SVN


LXC

Debian 8 verwendet standardmäßig systemd anstatt dem bis dato verwendeten SysVInit mit dne bekannten Startscripts unter /etc/init.d/.

Leider ist systemd im LXC-Container nicht lauffähig, wenn auf dem Host noch Debian Wheezy läuft. Es funktioniert nur für Container, die unter Debian Jessie auf dem Host betrieben werden. Für existierende Container auf Jessie Host ist ein Workaround erforderlich. Für neu erstellte Jessie Container unter Debian Jessie auf dem Host funktioniert es out of the box.

Workaround für Jessie Container auf Wheezy Host

bevor der Container oder Host neu gebootet werden, wird sysvinit installiert, das unter Debian Jessie nachwievor zur Verfügung steht und auch supported wird:

apt-get install sysvinit-core

Weitere Details siehe: https://wiki.debian.org/LXC#Incompatibility_with_systemd


Workaround Jessie Container auf Jessie Host

Nur erforderlich für bereits existierende Container (z.B. jessie):

lxc-stop -n jessie
vi /var/lib/lxc/jessie/config

Folgende Einträge zusätzlich einfügen:

lxc.autodev = 1
lxc.kmsg = 0


LXC Container Autostart

Der Autostart Mechanismus wurde bei LXC 1.0.x geändert. Die Container werden nicht mehr via Symlink gestartet, sondern über den Eintrag

lxc.start.auto = 1

Diesen zusätzlich in alle Container Config-Files eintragen, die beim Systemstart automatisch gestartet werden sollen.


Mount-Einträge

Falls ein Container nicht gestartet werden kann, kann es an den Mount-Einträgen existierender Container liegen. In früheren Versionen waren die Pfade absolut anzugeben. Bei LXC 1.0 empfiehlt es sich die Mountpfade relativ zum Container Root Filesystem anzugeben. Relative Pfade ohne führenden / Z.B.

lxc.mount.entry=devpts /var/lib/lxc/debian/rootfs/dev/pts devpts defaults 0 0

Sollte geändert werden in

lxc.mount.entry=proc proc dev/pts nodev,noexec,nosuid 0 0


Container IP-Adresse per DHCP

Falls der DHCP-Server auf dem selben Jessie-Host (nicht bei Wheezy-Host), oder in einem LXC-Container betrieben wird, können die LXC-Container aufgrund eines Bugs ihre IP-Adresse nicht per DHCP beziehen. Für Container mit fester IP-Adresse besteht diesbezüglich kein Problem.

apt-get install ethtool

Für jeden Container, der eine IP-Adresse per DHCP beziehen soll:

vi /etc/rc.local

Folgende Zeilen vor exit 0 einfügen:

#Fix for LXC Checksum Offload Problem
ethtool --offload  eth0  rx off  tx off
ethtool -K eth0 gso off

exit 0

Falls kein Zugriff auf den Container besteht auf dem Host ausführen:

chroot /var/lib/lxc/Container/rootfs/
apt-get install ethtool
vi /etc/rc.local

obige Zeilen einfügen

Nach der Änderung den jeweiligen Container neu starten bzw. Host neu starten


ProFTP

Bei der Aktivierung von ProFTP wird FTP in inetd.conf deaktiviert, sodass Proftp nicht mehr via INETD startet.

vi /etc/inetd.conf

Die folgende Zeile auskommentieren ('#' Zeichen entfernen):

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/proftpd

InetD neu starten:

/etc/init.d/inetutils-inetd restart

rsyslog

Im Logfile /var/log/syslog tauchten regelmäßig folgende Einträge auf:

rsyslogd-2007: action 'action 17' suspended, next retry is ...

Um diese zu eliminieren, muss die rsyslog Konfiguration angepasst werden:

vi /etc/rsyslog.conf

Auskommentieren des folgenden Blocks (normalwerweise ganz am Ende des Files), um die Logausgabe an xconsole zu deaktivieren, die auf einem Server normalerweise nicht existiert und für obige Logausgaben verantwortlich ist:

#daemon.*;mail.*;\
#       news.err;\
#       *.=debug;*.=info;\
#       *.=notice;*.=warn       |/dev/xconsole

rsyslog neu starten

/etc/init.d/rsyslog restart


OpenVPN

Falls OpenVPN mit User/Passwort authentifizierung verwendet wird (zusätzlich zur zertifikatsbasierten Authentifizierung), muss der Filename des authorisierungs Plugins geändert werden, da dieses in Jessie umbenann wurde

vi /etc/openvpn/server.conf

Die Zeile

plugin /usr/lib/openvpn/openvpn-auth-pam.so login

abändern in

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login