Nachdem der Duden Korrektor nun auch bei mir im CD-Regal steht, hab ich mir dran versucht, das Ding unter Ubuntu zum laufen zu bekommen. Und bin natürlich grandios gescheitert. Ich geb aber gerne Auskunft, wie weit ich bekommen bin.
Die Linux-Instalation auf der CD enthält ausschließlich eine Suse 10.1 Version im rpm-Format. Offensichtlich hatte man wohl ursprünglich geplant auch eine Debian Version beizulegen, zumindest sprechen die Einträge im Installationsscript dafür und von der OpenOffice Suite gibt es ja auch eine Debian-Version.
Soweit ich das Installationsscript durchsteige (und ich hab in sowas zugegebenerweise sehr wenig Erfahrung), wird zunächst die verwendete Linux-Version abgefragt. Ist die Version dem Script bekannt, werden die Pfadvarablen so angepasst, dass die richtigen Installationsdateien aufgerufen werden. Nur leider gibt es kein Verzeichnis $CDROOT/Debian/Duden-Korrektor/ sondern halt eben nur die Suse Version. Für Debian passt das Script jetzt noch die Installationsquellen an, da in der stabilen Debian-Version kein OpenOffice 2 enthalten ist, bzw die OpenOffice Suite, so vorhanden, eine Beta-Version von OOo installiert hat. Abschließend wird das aktuelle OOo zusammen mit dem Korrektor installiert und die OOo beta entfernt. Das Script war auch bei der OpenOffice Suite nutzlos, weil es eben nicht mit Ubuntu klarkommt, aber die (upgedateten) Debian-Pakete ließen sich manuell installieren.
So weit, so gut nur leider keine *.deb Pakete. Auf der CD finden sich insgesamt 3 Pakete: dpf (Duden Proof Factory prüft, ob den irgendetwas richtig geschrieben ist), dpfserv (der zugehörige Dienst der im Hintergrund läuft und aus OOo heraus angesprochen wird) und doos (Duden OpenOffice Suite, der Teil, der sich in OOo als Zusatzpaket installiert, aus den Dokumenten den Text extrahiert und an die Proof Factory übergibt).
Als nächstes hab ich also versucht die rpm-Dateien in deb-Pakete umzuwandeln. Das Problem hierbei ist, dass die Postinstall-Skripte, also das, was nach dem Installieren auf dem Rechner noch angepasst wird, nicht 1 zu 1 übertragbar sind.
Also zunächst alle rpm-Packete in ein temporäreres Verzeichnis kopiert.
sudo alien *.rpm
erzeugt .deb-Pakete, die sich zwar installieren lassen, aber der Duden-Dienst wird nicht gestartet und OOo wird nicht um die Dudenfunktionalität erweitert. Lediglich alle Dateien werden an die vorgesehene Position im lokalen Dateisystem kopiert.
sudo alien --scripts *.rpm
erzeugt .deb-Pakete, die zwar die notwendigen Skripte mit enthalten, aber beim Installieren Fehlermeldungen hervorrufen, weil die Skripte naturgemäß nicht unter Ubuntu funktionieren. Die Skripte finden sich nach der Installation unter /var/lib/dpkg/info. *.postinst sind die Skripte, die nach der Installation ausgeführt werden, *.prerm vor der Deinstallation und *.postrm nach der Deinstallation. Es gilt also diese Pakete so anzupassen, das eine Installation der Pakete aus sudo alien *.rpm abgeschlossen werden kann.
dpf.postinst
Soweit ich das verstehe, werden zwei Skripte unter /etc/profile.d angelegt mit der Aufgabe den Installationspfad der Proof Faktory (/usr/share/dpf/) als Variable zurückzugeben. Welche Funktion der Ordner /etc/profile.d unter Suse besitzt, entzieht sich meiner Kenntnis, unter Ubuntu existiert er nicht.
dpfserv.postinst
Das Skript erzeugt die Einträge, über die der Duden Dienst beim Systemstart startet. Hier liegt das eigentliche Kernproblem der Installation, die Installation der Dienste ist unter Ubuntu und Debian/Suse grundsätzlich verschieden. Insbesondere der Befehl /sbin/insserv existiert unter Ubuntu nicht, hier wird offenbar der Dienst vom System vorkonfiguriert und unter Ubuntu werden Dienste mit anderen Befehlen gestartet als unter Suse.
doos.postinst
Das Skript sucht sich alle notwendigen Pfade von OOo und den Dudenkomponenten zusammen. Es erstellt zwei Skripte mit denen das Duden-Paket als Uno-Komponente für alle Nutzer in OOo integriert bzw. entfernt wird. Die Befehle für die Konsole lauten
sudo /usr/lib/openoffice/program/unopkg add --shared /usr/share/doos/doos3.51.uno.pkg
zum installieren, bzw.
sudo /usr/lib/openoffice/program/unopkg remove --shared doos3.51.uno.pkg
zum entfernen.
Die Sache mit dem Dienst.
Ich bin inzwischen so weit, dass sich der DPF-Dienst starten lässt. Hierzu hab ich ein Duden OpenOfficeSuite aufgetrieben und mir dort die Scripte angeschaut. Das Installationsscript für den DLE-Server der Suite hab ich so angepasst, dass sich damit der dpfserv starten lässt:
sudo gedit /etc/init.d/dpfserv
In das Textfenster dann folgenden Text kopieren:
#! /bin/sh
#
# $Id: init.d,v 1.6 2005/08/15 10:52:50 aderigs Exp $
# $Name: $
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/dpfserv
NAME=dpfserv
DESC='Duden Proof Factory Service'
test -x $DAEMON || exit 0
# DPF initialization script (sh) wie es von dpf.deb in /etc/profile.d erzeugt wird
if [ -z "$DPF" ] ; then
DPF="/usr/share/dpf"
fi
export DPF
#Handling des Server-Dienstes
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --exec $DAEMON
echo "$NAME."
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo "Reloading $DESC configuration files."
# start-stop-daemon --stop --signal 1 --quiet --pidfile \
# /var/run/$NAME.pid --exec $DAEMON
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
und das ganze speichern. Anschließend lässt sich der Dienst über
sudo /etc/init.d/dpfserv start
starten. An dieser Stelle verlassen mich dann aber auch meine Linux-Kenntnisse. Zwar erhalte ich keine Fehlermeldung, weiß aber auch nicht, wie ich prüfen kann, ob der Dienst läuft und ob er korrekt läuft. Auch weiß ich nicht, was ich noch unternehmen kann, wenn der Dienst nicht wie vorgesehen läuft.
Eine Installantion OOo-Komponente über
sudo /usr/lib/openoffice/program/unopkg add --shared /usr/share/doos/doos3.51.uno.pkg
ist nun zwar möglich, allerdings lässt sich die Teilkomponente doos3.51.uno.so nicht aktivieren, also keine Dudenfunktionalität. Scheinbar läuft der DPF-Dienst doch nicht wie vorgesehen.
Ich bin mit meinem Latein am Ende, vielleicht schaft es ja aber jemand anders hier weiterzumachen.
Frohes Basteln
morps