Anleitung für das Upgrade von paedML/openML 4.0.4/4.0.5 auf Version 5.0.0

Voraussetzungen:

  • Ausgangssystem: paedML/openML der Version 4.0.4 bzw. 4.0.5
  • Internetverbindung

Wichtig:

  • Wenn Sie beim Betatest für paedML/openML 5.0.0 mitmachen wollen, melden Sie sich bitte bei unserer  testing-Mailingliste an, damit Sie von uns Entwicklern Support erhalten können.
  • Systeme, die die Testversion des Druckquotasystems installiert haben, werden nun auch unterstützt.
  • Abfragen des Paketsystems nach der Ersetzung von Konfigurationsdateien sind immer mit der Standardantwort "N" oder mit ENTER zu beantworten.

Optionale Vorbereitung

Während des Upgrades werden bis zu 700MB an Softwarepaketen heruntergeladen. Um das Risiko eines abgebrochenen Upgrades wegen einer unterbrochenen Internetverbindung zu minimieren, können die benötigten Pakete schon vorher lokal bereitgestellt werden. Dazu lädt man sich aus dem Downloadbereich das Archiv openML50-upgrade-debs_xxxxxxxx.tar.bz2 herunter. Das entpackt man auf dem Server ins Wurzelverzeichnis:

# tar xf openML50-upgrade-debs_xxxxxxxx.tar.bz2 -C /

Nun liegen die Upgradepakete im lokalen Paketcache unter

/var/cache/apt/archives

und müssen während des Upgradeprozesses nicht mehr heruntergeladen werden. Falls in der Zwischenzeit online eine aktuellere Version eines Pakets vorliegt, wird dieses jedoch heruntergeladen und installiert. Von Zeit zu Zeit wird deshalb das Upgrade-Paketarchiv im Downloadbereich erneuert.

Ablauf Schritt für Schritt:

  1. System auf den aktuelle Stand bringen:
        # aptitude update
        # aptitude dist-upgrade
    
    Etwaige Fehlermeldungen beim Update der Paketlisten bzgl. nicht gefundener Pakete kann man getrost ignorieren, da wir aus Etch keine Pakete mehr benötigen (s. a. Etch-Repos verschoben).
  2. Die Konfigurationsdatei /etc/apt/sources.list ist um folgenden Eintrag zu ergänzen:
        deb http://pkg.lml.support-netz.de/paedml50-upgrade ./
    
  3. Nun muss das System noch einmal aktualisiert werden:
        # aptitude update
        # aptitude dist-upgrade
    
  4. Anschließend startet man das Distributions-Upgrade durch Eingabe des Befehls:
        # paedml50-upgrade
    
  5. Schließlich muss der Server neu gestartet werden.
  6. Falls der Upgradeprozess unterbrochen wurde, kann man ihn durch erneute Eingabe von
        # paedml50-upgrade
    
    wieder aufnehmen. Die Versionsprüfung zu Beginn lässt sich bei Bedarf mit
        # paedml50-upgrade --force
    
    umgehen.

Bemerkungen:

  • Das Upgradeskript führt zunächst eine Datenbanksicherung (s.u.), dann Konfigurationsanpassungen und Softwareaktualisierungen durch (s. #195).
  • paedML/openML spezifische Pakete werden während des Upgrades aus unserem Repository ( http://pkg.lml.support-netz.de/paedml50-updates) aktualisiert.
  • Die Konsolenausgabe des Upgradeprozesses wird komplett nach /var/log/linuxmuster/paedml50-upgrade.log geloggt.
  • Zu ändernde Konfigurationsdateien werden zu Beginn des Upgrades mit der Erweiterung .lenny-upgrade gesichert.
  • Externe (LAN u. WAN) LDAP-Authentifizierungsabfragen werden nach dem Upgrade nur noch verschlüsselt (per start_tls bzw. ldaps) akzeptiert. Ein extern gehostetes Moodle mit LDAP-Authentifizierung muss also entsprechend umgestellt werden.
  • Abhängig davon muss auf Ubuntu-Clients linuxmuster-client >= 0.9.18-0 (r658) installiert sein, damit die LDAP-Authentifizierung funktioniert.
  • Auf Serverhardware mit IDE-Platten müssen, falls der neue Debian-Kernel nicht bootet, in den Dateien /etc/fstab und /boot/grub/menu.lst ggf. der Festplatten-Gerätenamen von /dev/sda bzw. /dev/sdb auf /dev/hda bzw. /dev/hdb geändert werden. Dazu kann nach dem Reset des fehlgeschlagenen Bootvorgangs im Bootmenü einfach wieder der alte Kernel (2.6.24) ausgewählt und gebootet werden.
  • Besonderheiten bzgl. Postgresql-Datenbanken:
    • Die Postgresql-Datenbanken werden im Zuge des Upgrades, soweit erforderlich, auf UTF8-Kodierung umgestellt.
    • Zu Beginn des Upgrades werden alle vorgefundenen Datenbanken UTF8-kodiert nach /var/tmp/<dbname>.lenny-upgrade.pgsql gesichert.
    • Die Datenbanken ldap, moodle und pykota werden automatisch wieder eingespielt.
    • Eine evtl. vorhandene mrbs-Datenbank wird automatisch wieder hergestellt, wenn sie nach Linuxmuster.net-Wiki-Anleitung nach /etc/www oder /var/www/apache2-default installiert wurde (mrbs-Installationen per Debianpaket sind hiervon nicht betroffen, da sie MySQL benutzen).
    • Weitere selbstangelegte Postgresql-Datenbanken müssen händisch aus der Sicherung wieder eingespielt werden.

Neue Encoding-Optionen in Sophomorix:
sophomorix-check geht ab Version 2.2.13 (paedML/openML 5.0.0) davon aus, dass die Dateien

  • schueler.txt
  • lehrer.txt
  • extraschueler.txt
  • extrakurse.txt

in einer der folgenden Zeichencodierungen abgespeichert sind:

  • ISO 8859-1
  • ISO 8859-15 (Standardeinstellung)
  • windows1252
  • UTF8

Rufen Sie nach dem upgrade auf 5.0.0 auf der Konsole

# sophomorix-check

auf. Falls es dabei zu Namensumbenennungen kommt, sollten Sie diese anschließend beheben, indem Sie sophomorix-check mit einer Encoding-Option aufrufen (alle Optionen mit sophomorix-check --help), z.B.:

# sophomorix-check --encoding-students 8859-1

Dieser Befehl liest schueler.txt als ISO 8859-1 ein. Ist/sind die richtigen Optionen gefunden, werden sie in /etc/sophomorix/user/sophomorix.conf eingetragen, z.B.:

$encoding_students="8859-1";

Nun kann sophomorix-check wieder ohne Encoding-Option aufgerufen werden.

Wenn Sie lehrer.txt auf verschiedene Weise editiert haben (mal mit Emacs/Vi direkt auf dem Server, mal vom Windows-Client aus via Putty mit Emacs/Vi), dann kann in lehrer.txt ein Gemisch von Zeichenkodierungen entstehen. In einem solchen Fall sollten Sie lehrer.txt so editieren, dass die betroffenen Sonderzeichen als ASCII-Zeichen eingetragen werden (A-Umlaut als Ae).