apraxos

 

Backup von Konfigurationsdaten und installierten Paketen

Vor einem Update sollten die Daten in den Verzeichnissen /etc und /var/lib/dpkg sowie die Datei /var/lib/apt/extended_states und die Ausgabe von dpkg --get-selections "*" (die Anführungszeichen sind wichtig) gesichert werden. z.B. ins Root-Verzeichnis wechseln,

root@Praxiscomputer:~# zip -r etc.zip /etc
root@Praxiscomputer:~# zip -r dpkg.zip /var/lib/dpkg
root@Praxiscomputer:~# zip extended_states.zip /var/lib/apt/extended_states
root@Praxiscomputer:~# dpkg --get-selections "*" > selections.txt

Vorbereitung des Systems

Mit dem Update auf Debian Jessie wird auf Systemd umgestellt. Daher muß das Update auf der Konsole, also nicht bei gestartetem X-Server, durchgeführt werden. Man startet also den Computer und verläßt den Login-Bildschirm mit Strg-Alt-F1.

Es erscheint ein schwarzer Bildschirm mit dem Login-Prompt. Sie loggen sich als User root ein.

Zunächst muss das System auf den letzten Stand gebracht werden (das # vor dem Befehl weglassen, dies zeigt nur, dass der Befehl als root durchgeführt werden muss):

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

Hier auf Fehlermeldungen achten. Alle Fehler müssen eliminiert werden.

Dabei hilft auch:

# apt-get -f install

Pakete, die auf „Hold“ gesetzt sind und nicht upgedatet werden, sollte man zunächst entfernen:

# dpkg -P <Paketname>

Falls das Paket wegen verschiedener Abhängigkeiten nicht deinstalliert werden kann, kann man die Deinstallation erzwingen mit:

# dpkg -P --force-depends <Paketname>

anschließend:

# apt-get -f install

was weitere Pakete entfernen wird, die von dem störenden Paket abhängig sind, oder es installiert andere Pakete, sodass die Abhängigkeiten wieder erfüllt sind. Eventuell noch aufräumen mit:

# apt-get autoremove → entfernt verwaiste Pakete
# apt-get clean → entfernt alte Installationsdateien
# apt-get autoclean → räumt noch weiter auf.

und nochmal
# apt-get -f install → Kontrolliert die Abhängigkeiten im gesamten System

Update durchführen

# apt-get -f install

sollte jetzt keine Fehlermeldungen mehr ausgeben. Nun muss Hand an die Datei /etc/apt/sources.list gelegt werden. Man rufe die Datei in einem Editor (vi, mcedit, kwrite, kate) auf und ersetze wheezy mit jessie. Gleichzeitig sollten alle APT-Quellen, die über das Basissystem hinausgehen, auskommentiert werden (= ein # an den Anfang der Zeile setzen):

/etc/apt/sources.list :


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

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

# jessie-proposed-updates
#deb http://ftp.us.debian.org/debian jessie-proposed-updates main contrib non-free


nun geht es los:

# apt-get update
# apt-get upgrade

nun werden massenweise Pakete heruntergeladen und installiert.

Ganz alleine kann man das nicht laufen lassen: zwischendurch tauchen immer wieder Fragen auf, die man beantworten muss.

Zunächst kommen Meldungen für den Systemadministrator, was sich an welchen Paketen geändert hat. Die Meldungen sind eher was für Systemadministratoren von Webservern. Die Meldungen können Sie mit p verlassen.

Weitere Fragen: eine Konfigurationsdatei, die im Vergleich zur Vorgabe verändert wurde, soll ausgetauscht werden.
Mit N wird die Konfigurationsdatei nicht verändert, was allerdings ein Risiko ist, wenn bestimmte Optionen sich geändert haben.
Mit Y wird die Vorgabe-Konfigurationsdatei des Programmpakets installiert.

Wenn man nicht mehr genau erinnert, was man an dieser Konfigurationsdatei geändert hat, ist es meist sicherer, die neue Konfigurationsdatei zu übernehmen, also mit Y zu antworten. Falls es dann hinterher nicht so läuft wie erwartet, kann man dann immer noch in den gesicherten Daten von etc.zip nachsehen, wie die Konfigurationsdatei vorher aussah.

Hat das soweit geklappt, folgt:

# apt-get dist-upgrade

Nochmal werden Hunderte von Pakete heruntergeladen und installiert.

Wenn Alles geklappt hat, nochmal mit

# apt-get -f install

kontrollieren, ob alle Pakete passen und sauber installiert wurden.

Die nicht mehr benötigten Pakete würde ich erst deinstallieren, wenn ein Reboot keine Fehler ergab. Also:

# reboot

und Daumen drücken. Wenn der Reboot geklappt hat, kann man sich normal mit Login auf der grafischen Oberfläche anmelden.

Beim ersten Login bei KDE müssen die Kmail- und Adressbook-Daten umgestellt werden, da es auch bei KDE Umstellung gegeben hat. Das kann etwas dauern. Erst die KDE-Umstellung sauber durchlaufen lassen.

Es können nun die Paket-Quellen in /etc/apt/sources.list neu eingestellt werden und auch zusätzliche Quellen aktiviert werden. Dann nochmal:

# apt-get update
# apt-get upgrade

Damit sollte das Update vollständig sein.

Was Probleme bereiten kann: hat man Debian-Pakete aus fremden Quellen installiert, können diese Pakete den Update-Prozess behindern: z.B. hatte ich auf einem Rechner mit Nvidia-Grafikkarte den proprietären Linux-Treiber installiert. Nach dem Reboot fiel der X-Server auf die Nase. Ich habe einige Mal herumexperimentieren müssen, bis der X-Server wieder mit dem Nvidia-Treiber aus Debian non-free starten wollte.

Eine ausführlichere Anleitung zum Update von Wheezy auf Jessie findet man auch auf
https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading
Dort findet man auch weitere Hinweise, falls Probleme auftauchen.

Eine ausführliche Beschreibung des Befehls dkpg findet sich auf:

http://debiananwenderhandbuch.de/dpkg.html

des Befehls apt-get auf:

http://debiananwenderhandbuch.de/apt-get.html

des Befehls apt-file auf:

http://debiananwenderhandbuch.de/apt-file.html

Damit sollte eine Update gelingen.

Mögliche Probleme nach dem Update

# apt-get -f install

meldet nach dem Update, dass ein Paket phonon-backend-vlc nicht upgedatet werden konnte. Wenn man versucht, mit dpkg -P phonon-backend-vlc zu deinstallieren, wird das wegen verschiedener Abhängigkeiten verweigert. Man kann es dann mit

# dpkg -P --force-depends phonon-backend-vlc

deinstallieren. Danach will allerdings ein

# apt-get -f install

etliche wichtigen KDE-Pakete deinstallieren. Das ist also nicht sinnvoll.

Lösung, wie ich es gemacht habe:

# dpkg -P --force-depends phonon-backend-vlc

# dpkg-query -l '*vlc*'
zeigt alle Pakete mit vlc im Namen an. Diese Pakete werden mit

# dpkg -P --force-depends ....

gelöscht. Danach will

# apt-get -f install

nicht mehr die KDE-Pakete löschen und man kann mit der Installation und dem Upgrade einer Reihe von Paketen die Installation sauber beenden.

Problem: Cherry G87-1504 oder andere Kartenlesegeräte wollen nicht mehr einlesen

Beim Update sind offensichtlich eine ganze Menge neuer Udev-Rules geladen worden, die die Permissions der USB-Devices ändern. Die Cherry G87-1504 konnte nicht mehr die eGKs einlesen, da die Device-Rechte auf

# ls -al /dev/usb/*
crw------- 1 root root 180, 0 Jun 26 09:40 /dev/usb/hiddev0

stand, d.h. nur root hatte Zugriff auf die Kartenleseeinheit. Ich hatte bei den Treiber für die Kartenlesegeräte bereits mehrere Udev-Rules definiert, allerdings als /etc/udev/rules.d/95-cardterminal.rules oder /etc/udev/rules.d/95-cardterminals.rules. Das reicht offensichtlich nicht. Es sollte eine Datei /etc/udev/rules.d/99-cardterminal.rules angelegt werden mit folgendem Inhalt:

---------------------------------------------------------------------
# udev-Rules für verschiedene Kartenterminals
#

# nur gültig für USB Devices
# Hier usb-ids für die Kartenterminals eintragen, damit sie vom normalen Anwender
# aus der Gruppe "users" ausgelesen werden können.
SUBSYSTEM=="usb", ATTRS{idVendor}=="142a", ATTRS{idProduct}=="0043", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0d46", ATTRS{idProduct}=="3002", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="152a", ATTRS{idProduct}=="8180", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="003e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1513", ATTRS{idProduct}=="0444", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0081", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="152a", ATTRS{idProduct}=="8180", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1513", ATTRS{idProduct}=="0444", MODE="0666"

KERNEL=="hiddev*", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0081", MODE="0666"
-------------------------------------------------------------------------------------

Diese Datei enthält alle mir bekannten Vendor-IDs und Product-IDs. Da sich diese Datei in den Treiber-Paketen der Kartenlesegeräte überschneidet, könnte das zu Problemen bei der Installation und Deinstallation der Treiber-Pakete führen, sodass ich diese Datei nicht mehr in den Treiber-Paketen mitliefern werde. Sie wird dann auch bei der Deinstallation nicht entfernt.

# udevadm control --reload-rules

oder einem Neustart werden die geänderten Udev-Regeln richtig gesetzt und die Cherry-Tastatur liest wieder normal die Karten ein.

Rohdatendrucker neu konfigurieren

Wer bisher einen USB-Rohdatendrucker über Hal angesprochen hat, wird diesen Drucker in CUPS ncht mehr finden. Der Drucker muss über "unbekannten Drucker" neu eingerichtet werden. Notfalls über Linuxdruckbefehl 4 einrichten, siehe 24-nadeldrucker-einrichten

UUID von Geräten ändert sich

Nach dem Reboot dauert der Systemstart deutlich länger mit der Meldung "A start job is running...." und später "Job dev-disk-by......timed out". In wenigen Fällen kann der Systemstart abbrechen und man landet auf einer Rescue-Konsole.

Man kontrolliere als root mit

blkid

die UUIDs der verschiedenen Partitionen evtl. auch DVD- oder CDROM-Laufwerk und vergleiche diese mit den Eintragungen in der Datei /etc/fstab. Dort müssen dann die UUIDs den entsprechenden Geräte geändert werden. Beim nächsten Booten ist die Fehlermeldung dann weg.

Drucker an Squeeze-Rechner wird nicht mehr erkannt

CUPS in Jessie erwartet Druckerfreigaben im Netz mit dem DNSSD-Protokoll, das Rechner mit Debian Squeeze noch nicht konnten. Also werden freigegebene Drucker von Debian Squeeze-Rechnern nicht mehr im Netzwerk gesehen.

Abhilfe: auf dem Debian Jessie-Rechner eine neue Datei /etc/cups/client.conf anlegen mit dem Inhalt:

ServerName <IP-Adresse des Squeeze-Rechners>/version=1.1

Falls der Druck dann gar nicht mehr funktioniert, die Datei wieder löschen.

 

Image Module