<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>linux-blog - Fa. anracon - Dr. Mönchmeyer</title>
	<link>http://linux-blog.anracom.com</link>
	<description>Linux im Einsatz - Erfahrungsberichte, Tipps, Beispiele</description>
	<pubDate>Sun, 08 Jan 2012 16:51:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Opensuse 12.1 - Erfahrungen mit einer Neuinstallation</title>
		<link>http://linux-blog.anracom.com/2012/01/08/opensuse-121-erfahrungen-mit-einer-neuinstallation/</link>
		<comments>http://linux-blog.anracom.com/2012/01/08/opensuse-121-erfahrungen-mit-einer-neuinstallation/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 16:50:00 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Opensuse 12.1]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2012/01/08/opensuse-121-erfahrungen-mit-einer-neuinstallation/</guid>
		<description><![CDATA[In der letzten Zeit habe ich mehrere Systeme auf Opensuse 12.1 upgraden müssen. Zudem habe ich zwei komplette Neuinstallationen vorgenommen. Zeit mal etwas über meine Erfahrungen zu schreiben - im speziellen auch zum nuen Startup-Verfahren &#8220;systemd&#8221;. In diesem Artikel geht es um eine Neuinstallation von Opensuse 12.1 auf einem System mit folgenden Charakteristika: 
Quadcore CPU [...]]]></description>
			<content:encoded><![CDATA[<p>In der letzten Zeit habe ich mehrere Systeme auf Opensuse 12.1 upgraden müssen. Zudem habe ich zwei komplette Neuinstallationen vorgenommen. Zeit mal etwas über meine Erfahrungen zu schreiben - im speziellen auch zum nuen Startup-Verfahren &#8220;systemd&#8221;. In diesem Artikel geht es um eine Neuinstallation von Opensuse 12.1 auf einem System mit folgenden Charakteristika: </p>
<p style="margin:20px;">Quadcore CPU Intel Q9550, 8GB RAM, 3ware Raid-Controller mit 4 2TB-Platten im Raid 10 Modus, Nvidia Grafikkarte EVGA 9800GTX+ an einem 1920&#215;1200 Schirm.</p>
<p>Ich möchte hier das System nur soweit installieren, dass mindest die Grafikkarte läuft, die Anbindung ans Netz erfolgt ist und ich in der Lage bin, einen Vergleich der Startup-Zeiten zwischen &#8220;systemd&#8221; und dem konventionellen &#8220;System V Init&#8221;-Verfahren durchzuführen.     </p>
<p>Potentiell problematisch sind für eine Opensuse-Installation sind an der Hardwareliste zwei Dinge: </p>
<p>Einerseits das Raid 10-System - das Raid-Array entspricht netto einer Platte mit einem Plattenplatz oberhalb von 3,8 TB . D.h. &#8220;fdisk&#8221; fällt als Formatierungstool aus; es wird &#8220;GPT&#8221; benötigt. Hier ist aber Optimismus angesagt, denn der Opensuse-Installer bindet mindestens seit Opensuse 11.3 automatisch GPT ein, wenn er eine entsprechend große Platte erkennt. Das Gleiche gilt natürlich auch für den &#8220;Partitionierer&#8221; unter Yast. Aber man wiss ja nie &#8230;  </p>
<p>Schwierigkeiten kann ebenfalls die EVGA-Grafikkarte machen. Bei früheren Installationen hatte ich mit dieser Karte regelmäßig Probleme mit dem 1600&#215;1200-Framebuffer-Modus. Dieser wird von Opensuse aber als Modus mit der maximalen Auflösung angeboten - im besonderen für die Konsolen-Darstellung. Den hochauflösenden Modus möchte man natürlich auch gerne ausnutzen - oft genug mußte ich früher aber schon auf den 1280&#215;1024-Modus ausweichen. Hier war ich gespannt, wie sich der &#8220;Opensuse 12.1&#8243;-Installer verhält und wie man den Nvidia-Treiber zum Laufen bringt.            </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Positive Punkte während der Installation</p>
<p style="font-size:12px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Der 1600&#215;1200 Modus wird während der Installation auch bei der EVGA-Karte weitgehend akzeptiert</p>
<p>Ich konnte im graphischen Installer die Auflösung 1600&#215;1200 wählen. Dies machte bis zum Neustart des installierten Systems über &#8220;kexec&#8221; auch keine Probleme - weder in zwischenzeitlichen Konsol-Ansichten noch im grafischen Modus selbst. </p>
<p style="font-size:12px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Die Formatierung des netto 3.8 TB umfassenden zusammenhängenden Raid-Arrays gelang ohne jegliche Probleme</p>
<p>Das Raid 10-System ist bei einer Frmwareversion &#8220;FE9X 4.10.00.007&#8243; des 3ware-Raid-Controllers recht performant - die schreibraten liegen um die 220 - 250 MB/sec, die Leseraten sind noch höher. Mehr kann man bei den eingesetzten Samsung &#8220;2TB F4 HD204UI&#8221;-Platten einfach nicht erwarten. Es wäre schade gewesen, wenn das SuSE-System damit nicht hätte umgehen können. Aber weder der Installer noch der &#8220;YAST-Partitioner&#8221; hatten damit Probleme - wie erwartet benutzen beide automatisch GPT. Ich habe meiner  Standardpolitik folgend, mehrere (genauer 4) 80 GB-umfassende Standrad-Partitionen am Anfang des Arrays und danach einen großen LVM-Bereich zur Aufnahme flexibel erweiterbarer Partitionen für Daten und spätere virtuelle KVM-Maschinen anlegen können. Es gab dabei keinerlei Schwierigkeiten. </p>
<p>Falls sich jemand fragt, woher die &#8220;Politik&#8221; mit den 4 Standardpartionen stammt: </p>
<p>Ich bringe hier bootfähige Fallbacksysteme unter, die in Notfällen in der Lage sein müssen, auch Daten in einem bestimmten Umfang aufzunehmen. Die Fallback-Systeme bestehen meist aus Abbildern bewährter Versionen auf einem bestimmten Update-Stand in Kombination mit bewährten KDE-Versionsständen. So komme ich bei größeren Problemen - wie sie im besonderen relativ häufig bei KDE-Upgrades auftreten - oder auch bei Schwierigkeiten mit LVM-Partitionen relativ schnell wieder zu laufenden Systemen, ohne komplette Neuinstallationen oder eine vollständige Restauration von Backups durchführen zu müssen. Hat man Sicherungen seiner Datenpartitionen auf Platten separater externer Systeme untergebracht, oder sind die Datenpartitionen selbst unbeschadet, so erledigt sich die Arbeit meist schon durch Einbinden der Datenpartitionen (ggf. über NFS). Abbilder der Systeme (z.B. per dd) haben sich in der Praxis schon mehrfach bewährt, wenn ein KDE-Upgrade das aktuelle System fast in die Unbenutzbarkeit getrieben hat. </p>
<p style="font-size:12px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Die Installation geht reativ zügig vonstatten</p>
<p>Aufgrund der hohen Performance des Raid 10-Arrays wird die Installation auch beim Laden vieler Serverkomponenten etc. zuügig abgewickelt. Bei der vorgenommenen Installation habe ich praktisch alle relevanten Serverkomponenten sowei eine große Zahl von Entwicklungskomponenten mit installieren lassen. Insgesamt 3,6 GByte an Paketen. Das ging wirklich zügig. Ist aber kein spezielles Verdienst von SuSE.   </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Probleme während der Installation</p>
<p style="font-size:12px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Die Weiterführung der grafischen Installation nach Ausführung von &#8220;kexec&#8221; bringt das System zum Sillstand</p>
<p>Nach der Installation aller Pakete versucht der Installer den neuen Kernel mit &#8220;kexec&#8221; zu laden und danach das neue System hochzufahren. Hierzu wird temporär auf die Konsolenansicht gewechselt. Danach sollte eigentlich die grafische Installationsoberfläche im aktualisierten System erneut gestartet werden; im Anschluß daran sollte die Konfiguration des neuen Systems (Geräteerkennung und Treiberimplementierung) erfolgen. </p>
<p>Der Wechsel des Installers auf die Konsole für die Durchführung von &#8220;kexec&#8221; funktionierte. Der Kernel wurde ordnungsgemäß mit &#8220;kexec&#8221; geladen. Danach werkelte das System noch fleissig im Verborgenen (aha - die erste Anzeichen von systemd - keine Meldungen mehr auf der Konsole!) - und dann wurde der erneute Start der grafischen Installer-Oberfläche eingeleitet. Bei mir endete das aber leider mit eine hübsch bunten Schirm aus Fragmenten und einem Einfrieren des Systems. Das System (besser X-Window) reagierte auch nicht mehr auf Tastatureingaben - ein &#8220;Ctrl-Alt-D&#8221; für ein geordnetes Herunterfahren blieb wirkungslos. Ich war also gezwungen, die Installation abzubrechen und einen Warmstart durchzuführen.</p>
<p>Ich möchte an dieser Stelle klarstellen, dass dieses Problem meiner Meinung nach vor allem durch die EVGA Grafikkarte meines Testsystems bedingt ist. Denn auf anderen Systemen mit moderneren Nvidia-Karten trat das hier beschriebene Problem bei einer Neuinstallation vom Opensuse 12.1 nicht auf. Je nach Treibermodul hat die Karte halt doch immer mal wieder Probleme beim Wechseln zwischen dem 1600&#215;1200-Framebuffermodus für die Konsole und dem grafischen Installationsmodus.      </p>
<p style="font-size:12px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Warmstart und erneutes Booten nach System V-Manier ermöglichen nach ein paar Maßnahmen die Fortführung der grafischen Installation</p>
<p>Was macht man in einer solchen Situation, in der man zu Beginn der automatischen Konfiguration zum Warmstart gezwungen wird? Das danach möglicherweise inkonsistente Filesystem macht einem wenig Sorge; das schafft ext4 schon. Ein fsck-Vorgang geht auf dem Raid-System zudem sehr, sehr schnell. Aber wie geht man mit dem dem offenbar problematischen Standard-Grafiktreiber (Noveau) für die Graka um? </p>
<p>Meine Schritte waren folgende: </p>
<p><strong>Schritt 1:</strong><br />
Nach dem Warmstart boote ich nur in den Runlevel 3 und zur Elimination von Unwägbarkeiten zusätzlich auf &#8220;systemd&#8221; verzichten. Ersteres erreicht man durch Eingabe des Parameters &#8220;linux 3&#8243; in die Parameterzeile des Grub-Startup-Schirms. Und für das zweite hat SuSE dankenswerterweise eine Option angeboten. Man kann auf dem Startbildschirm &#8220;F5&#8243; betätigen und danach &#8220;System V&#8221; auswählen. Alternativ gibt man als Parameteroption </p>
<p style="margin-left:20px;">init=/sbin/sysvinit</p>
<p>ein. Dann wird der Startvorgang nach alter &#8220;System V&#8221;-Manier durchgeführt. </p>
<p>Der &#8220;System V&#8221;-Bootvorgang in den Runlevel 3 erfolgte dann problemlos. Das war auch fast zu erwarten, da die Darstellung der Konsole schon während des ersten Installationsanlaufes keine echten Probleme bereitet hatte. Der grafische Installationsvorgang wurde aber nicht sofort fortgesetzt.</p>
<p><strong>Schritt 2:</strong><br />
Im nun erreichten Runlevel 3 habe ich als ersten geprüft, welches Grafikkartenmodul geladen war. Es war - wie vermutet - das &#8220;nouveau&#8221;-Treiber-Modul, das SuSE ja seit 11.4 als Default einsetzt. Dieses Treibermodul ließ sich auch nicht entladen - es wurde bei einem &#8220;rmmod&#8221;-Versuch als &#8220;in use&#8221; deklariert. Mit einer solchen Situation kann auch der Nvidia-Treiber-Installer nicht umgehen. Deshalb war ein erneuter Bootvorgang von vornherein unausweichlich. Als beste Methode, das System von einer Fortführung der Installation zu überzeugen, erschien es mir nach früheren Erfahrungen, KMS abzuschalten und auch die Pakete für den &#8220;Nouveau&#8221;-Treiber zu entfernen. Also habe ich mit </p>
<p style="margin-left:20px;">&#8220;Yast >> /ect/sysconfig-Editor >> System >> Kernel&#8221;</p>
<p>den SuSE-Konfigurationsparameter </p>
<p style="margin-left:20px;">&#8220;NO_KMS_IN_INITRD&#8221; auf &#8220;Yes&#8221; </p>
<p>gesetzt. Ferner habe ich über das Yast-Softwaremanagement das Paket </p>
<p style="margin-left:20px;">xorg-x11-driver-video-nouveau&#8221;</p>
<p>deinstalliert. Alles in der Hoffnung, dass das System nun erkennen würde, dass die automatische Konfiguration noch nicht durchgeführt oder abgeschlossen wurde. Typischerweise erkennt das SuSE-System das nämlich (wo immer SuSE diese Info hinterlegt wird).  </p>
<p><strong>Schritt 3:</strong><br />
Ich habe dann neu gebootet - wiederum mit den Parametern &#8220;linx 3 init=/sbin/sysvinit&#8221;. Und tatsächlich: Diesmal wurde direkt nach dem Hochfahren eine Meldung angezeigt, dass der Installationsvorgang wegen eines Fehlers nicht abgeschlossen wurde. Danach erfolgte direkt der Wechsel in den grafischen Modus zur Fortsetzung der automatischen Konfiguration. Die wurde auch ohne Fehlermeldungen abgeschlossen. Ein weiterer Bootvorgang in den Runlevel 3 verlief dann ohne Fehler. </p>
<p>Auf diese Weise hatte ich wenigstes die Installation ordnungsgemäß abgeschlossen. Ein &#8220;lsmod | grep nouveau&#8221; zeigte aber, dass nun immer noch (oder erneut?) der &#8220;nouveau&#8221;-Treiber geladen war. Dies war insofern überraschend als wir ja zumindest einen entsprechenden Kernelparameter gesetzt hatten, der zu einer Deaktivierung von KMS führen sollte. Ich habe die Einstellungen erneut mit dem sysconfig-Editor geprüft. Auch &#8220;/sbin/mkinitrd&#8221; wurde am Ende der Einstellungen im sysconfig-Editor korrekt aufgerufen. </p>
<p>Dennoch wird also der Nouveau-Treiber geladen. Diese Ungereimtheiten kannte ich schon von Opensuse 11.4; siehe auch: </p>
<p>http://www.linuxforen.de/forums/archive/index.php/t-269600.html<br />
und<br />
http://de.opensuse.org/SDB:Probleml%C3%B6sungen-Grafiktreiber  </p>
<p>Aus meiner Sicht reicht das Abstellen von KMS nicht; man muss den Treiber zusätzlich &#8220;blacklisten&#8221;. Dafür gibt es mehrere Möglichkeiten - man findet einige in den Beiträgen unter folgendem Link :  </p>
<p>http://www.linuxforen.de/forums/showthread.php?t=269600</p>
<p>Man kann das &#8220;Blackliste&#8221; aber auch der Nvidia-Installationsroutine für den proprietären Treiber überlassen. Die setzt nämlich bei entdecktem &#8220;Nouveau&#8221;-Treiber auf Rückfrage beim User ebenfalls einen Blacklisting-Eintrag.        </p>
<p>Das nächste größere Ziel war nun die Ersetzung des &#8220;nouveau&#8221;-Treibers durch den proprietären Treiber. Hierzu musste das neu installierte System erst einmal netzwerkfähg werden. In meinem Fall wollte ich den benötigten Treiber nämlich einfach per &#8220;scp&#8221; von einem anderen System kopieren. Hierzu muss man neben den Netzwerkeinstellungen auch den sshd-Daemon zum Laufen bringen. (Ein Treiberdownload per Browser kam erstmal nicht in Frage, da ja nicht klar war, ob der Nouveau nicht erneut Probleme machen würde.)  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Netzwerk, sshd, IPV6 und Probleme mit dem dsa-key</p>
<p>In meiner Testinstallation schlägt die standardmäßige DHCP-Konfiguration fehl, weil sowohl auf unserem Router als auch dem Standard-DHCP-Server des Netzes unsere &#8220;iptables&#8221;-basierten Firewalls nur uns bekannte MAC-Adressen zulassen. Für den Nvidia-Test trage ich deshalb die IP(V4)-Adresse auf dem neuen System zunächst von Hand, und zwar mittels &#8220;Yast >> Netzwerkeinstellungen&#8221; ein - und gleich auch noch das Standardgateway sowie einen DNS-Server. Alles wie von früheren Opensuse-Installationen her gewohnt - das Setzen der Parameter funktionierte einwandfrei. (Nach der Freigabe der MAC-Adresse der Netzwerkkarte auf dem Router (Standard-Gateway) kann der PC dann auch auf das Internet zugreifen.) </p>
<p><strong>Noch ein wichtiger Hinweis zu IPV6: </p>
<p>Man sollte beim Einstellen der Netzwerkparameter im ersten Anlauf IPV6 nicht deaktivieren (dies wäre bei &#8220;Yast >> Netzwerkeinstellungen&#8221; unter &#8220;Globale Optionen&#8221; möglich). Man läuft sonst in Schwierigkeiten beim Einsatz von &#8220;ssh -X&#8221; von Remotesystemen aus. Ferner entsteht ein kleines Problem bei Postfix, dass sich ggf. nicht mehr ordnungsgemäß starten läßt. </p>
<p>Zur Lösung des ssh/sshd-Problems siehe einen früheren Blog-Beitrag : </p>
<p><a href="http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/">http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/</a></p>
<p>Dort wird auch einen Fehlermeldung beim Starten des &#8220;sshd&#8221;-Daemons bzgl. eines nicht gesetzten bzw. nicht ladbaren &#8220;DSA keys&#8221; behandelt.  </p>
<p>Zum Postfix-Problem bei deaktiviertem IPV6 siehe dagegen die Kommentare unter </p>
<p><a href="http://www.linux-club.de/viewtopic.php?f=5&#038;t=114733  ">http://www.linux-club.de/viewtopic.php?f=5&#038;t=114733  </a></p>
<p>Nun starte ich schließlich nach den im anderen Blogbeitrag beschriebenen Maßnahmen zu ssh den sshd-Daemon &#8220;rcsshd start&#8221;. Von einem Remotesystem aus kopiere ich mir nun die Nvidia-Treiberdatei mittels </p>
<p>scp QUELL_PFAD_NVIDIA_TREIBER_DATEI UID@12.1_HOST:/ZIEL_PFAD_NVIDIA_TREIBER_DATEI</p>
<p>auf mein Opensuse 12.1-System. (Die groß geschriebenen Parameter sind natürlich an die jweiligen lokalen Verhältnisse anzupassen.)</p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Installation des Nvidia-Treibers</p>
<p>Welcher Treiber ist der richtige? Hier ist nach einem Fehlversuch meienrseits darauf hinzuweisen, dass mit dem 3.1.0-Kernel von Opensuse 12.1 für neuere Grafikkarten nur der proprietäre Treiber ab der Version 290 kompatibel ist. </p>
<p>Dann teste ich im Runlevel 3 mal mit </p>
<p style="margin-left:20px;">sh NVIDIA-Linux-x86_64-290.10.run </p>
<p>ob eine Installation möglich ist. Natürlich nicht, da der Nouveau-Treiber ja noch geladen ist. Den Vorschlag des Nvidia-Installers, einen entspechend notwendigen Eintrag in Startup-Dateien vorzunehmen (Blacklisting des nouveau-Moduls), bestätige ich. Dann starte ich das System neu - nun auch noch zusätzlich mit dem Parameter <strong>&#8220;nomodeset&#8221;</strong>, also </p>
<p style="margin-left:20px;">linux 3 nomodeset init=/sbin/sysvinit</p>
<p>Danach probiere ich die Nvidia-Installation nochmals. Das funktioniert nun, der Nouveau-Treiber wird nicht mehr geladen. Ggf. zeigt der Nvidia-Installer während des Installationsvorgangs eine Warnmeldung wegen eines Symbolic-Links. Dies passiert oft, wenn zuvor ein anderer Nvidia-Treiber - aus einer anderen Quelle - geladen war. Der Nvidia-installer korrigiert selbständig den bemängelten Link. Dann ggf. zur Sicherheit die Treiber-Installation nochmals durchführen. Die Warnmeldung sollte dabei nicht mehr auftauchen. Auf meinem System mußte ich nach Abschluß des Nvidias-Installers das Modul &#8220;nvidia.ko&#8221; übrigens per </p>
<p style="margin-left:20px;">modprobe nvidia</p>
<p>selbst laden. Der 290-Installer hatte dabei Probleme - und zwar auf mehreren Systemen - auch mit anderen Grakas. Das &#8220;modprobe&#8221;-Kommando läuft dann aber ohne Probleme. </p>
<p>Ein abschließendes &#8220;init 5&#8243; befördert uns danach vom Runlevel 3 in den Runlevel 5 - und dort wie erwartet endlich in den grfischen Login-Screen von kdm. Auch der nächste Reboot sowohl mit </p>
<p style="margin-left:20px;">nomodeset init=/sbin/sysvinit [>>> konventioneller System V Start]</p>
<p>als auch </p>
<p style="margin-left:20px;">nomodeset [>>> systemd - Start]</p>
<p>als Parametern läuft dann fehlerfrei bis auf den Runlevel 5 durch. </p>
<p>Bis auf die oben schon genannten Themen mit der Deaktivierung von IPV6 verhält sich das Opensuse-System dann im wesentlichen wie von Opensuse 11.4 her gewohnt. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Zeitvergleich zwischen Bootvorgängen mit &#8220;Systemd&#8221; und &#8220;System V init&#8221;</p>
<p>Nun trage ich noch die Parameter &#8220;nomodeset init=/sbin/sysvinit&#8221; mit Hilfe von &#8220;Yast >> bootloader >> Weitere >> Konfigurationsdateien bearbeiten&#8221; permanent für den Opensuse 12.1-Eintrag des Boot-Menüs in die Datei &#8220;/boot/grub(menu.lst&#8221; ein. Will ich künftihg ein wenig mit &#8220;systemd&#8221; herumexperimentieren, kann ich den Parameter auf dem initialen Bootscreen immer noch manuell löschen. </p>
<p>Diese Wahlmöglichkeit nutze ich als erstes für einen Zeitvergleich. Ich möchte gerne wissen, was mir &#8220;systemd&#8221; außer der Tatsache, dass ich keine Meldungen während des Bootvorgangs mehr sehe, an Performance beim Booten bringt. Als erstes sehe ich mir die Zeit an, die vergeht bis nach dem Start aus dem Grub-Menü heraus der KDM-Login-Schirm erscheint. Das ernüchternde, etwas subjektive und handgestoppte Ergebnis ist: </p>
<ul>
<li>Booten in den Runlevel 5 mit konventioneller Methode: 20 Sek</li>
<li style="margin-top:10px;">Booten in den Runlevel 5 mit &#8220;systemd&#8221;: zw. 15 und 16 Sekunden</li>
</ul>
<p>Im besten Fall !</p>
<p>Fairerweise muss man sagen, das beim Starten des X-Window-Systems Zeit vergeht, die nicht allein von systemd sondern von der Grafikkarte, dem Treiber und dem angeschlossenen Schirm abhängt : wir sprechen hier von ca. 4 Sekunden. Das passt zum Eintrag in &#8220;/var/log/messages&#8221;:   </p>
<p style="margin-left:20px;">Jan  8 13:15:59 xen systemd[1]: Startup finished in 4s 211ms 950us (kernel) + 6s 583ms 110us (userspace) = 10s 795ms 60us.</p>
<p>Deshalb dachte ich, dass man einen faireren Vergleich dann bekommt, wenn man mit den unterschiedlichen Startvarianten nur in den Runlevel 3 hochfährt. Also habe ich die Vergleichsläufe erneut mit &#8220;linux 3&#8243; als Startparameter durchgeführt. Und da erhielt ich dann ein wahrhaft schockierendes und für mich überhaupt nicht mehr nachvollziehbares (aber reproduzierbares) Ergebnis: </p>
<ul>
<li>Booten in den Runlevel 3 mit konventioneller Methode: 13 Sek</li>
<li style="margin-top:10px;">Booten in den Runlevel 3 mit &#8220;systemd&#8221;: <strong><span style="color:#A90000;"> &gt; 38 Sek</span></strong></li>
</ul>
<p>Tatsächlich finde ich in &#8220;/var/log/messages&#8221; folgenden Eintrag: </p>
<p style="margin-left:20px;">Jan  8 13:40:27 xen systemd[1]: Startup finished in 4s 163ms 726us (kernel) + 34s 824ms 357us (userspace) = 38s 988ms 83us.</p>
<p>Damit hatte ich erstmal genug von &#8220;systemd&#8221;! Was immer die Opensuse-Entwickler da fabriziert haben. Das wirkt nicht ganz ausgreift- trotz schöner Artikel wie etwa unter folgender Adresse: </p>
<p><a href="http://news.opensuse.org/2011/12/22/systemd-%e2%80%93-boot-faster-and-cleaner-with-opensuse-12-1/ ">http://news.opensuse.org/2011/12/22/systemd-%e2%80%93-boot-faster-and-cleaner-with-opensuse-12-1/ </a></p>
<p>Man lese aber auch mal die anschließenden Kommentare! </p>
<p>Hinzu kommen richtig ernsthafte Probleme mit systemd beim Upgrade von komplexeren Opensuse 11.4-Systemen auf Opensuse 12.1. Dazu aber mehr in künftigen Beiträgen.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Erstes Fazit</p>
<p>bei Schwierigkeiten während der Installation hilft es ggf. mit &#8220;F5&#8243; und auf konventionelle Weise zu booten. Der Nouveau-treiber kann während der Installation im zusammenspeil mit bestimmten Grafikkarten erhebliche Probleme bereiten. Für Nvidia-Karten muss man nach der Installation von Opensuse 12.1 den neuesten proprietären Treiber der Version 290 installieren. Frühere Treiber laufen nicht mit dem neue Kernel. Die größte Neuerung von Opensuse 12.1, nämlich &#8220;systemd&#8221; verbessert den Startvorgang -auf einem elementaren System, auf dem keine Serverkomponenten geladen werden, aber nicht um weltbewegende Faktoren. Die Verbesserung wird nur dann wirksam, wenn in den Runlevel 5 gebootet wird. Bei einem Start in den Runlevel 3 verhält sich &#8220;systemd&#8221; unter Opensue 12.1 unerklärlich schlecht; der Startvorgang dauert dann um einen Faktor 3 länger als ein konventionelles Hochfahren des Systems nach bewährter &#8220;System V&#8221;-Manier. </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2012/01/08/opensuse-121-erfahrungen-mit-einer-neuinstallation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Opensuse 11.4 / 12.1 - Problem mit ssh -X</title>
		<link>http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/</link>
		<comments>http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 17:01:09 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Opensuse 12.1]]></category>

		<category><![CDATA[Netzwerk]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/</guid>
		<description><![CDATA[An an meinen Arbeitsplatzsystemen habe ich inzwischen Opensuse 12.1 am Laufen. Dabei bin ich sowohl beim Upgrade meines PCs und bei einer Neuinstallation auf einem Laptop auf ein Problem mit &#8220;ssh&#8221; reingefallen. Das Problem trat schon bei Opensuse 11.4 auf. Ich hatte es nur vergessen. Deshalb ein kurzer Beitrag für diejenigen, die auch auf das [...]]]></description>
			<content:encoded><![CDATA[<p>An an meinen Arbeitsplatzsystemen habe ich inzwischen Opensuse 12.1 am Laufen. Dabei bin ich sowohl beim Upgrade meines PCs und bei einer Neuinstallation auf einem Laptop auf ein Problem mit &#8220;ssh&#8221; reingefallen. Das Problem trat schon bei Opensuse 11.4 auf. Ich hatte es nur vergessen. Deshalb ein kurzer Beitrag für diejenigen, die auch auf das Problem stoßen. Die nachfolgenden Erkenntnisse sind nicht auf meinem Mist gewachsen; das Wichtigste hat bereits Martin Vidner in einem entsprechenden Novell-Bug-Report als Kommentar geschrieben: </p>
<p><a href="https://bugzilla.novell.com/show_bug.cgi?id=686477">https://bugzilla.novell.com/show_bug.cgi?id=686477<br />
</a></p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Problembeschreibung</p>
<p>Deaktiviert man nach einer Installation von Opensuse 11.4/12.1 im Zuge der Netzwerkeinrichtung mittels Yast IPV6, so funktioniert danach von einem Remote-PC aus zwar noch der ssh-Login und das Arbeiten im ASCII-Terminal auf dem Opensuse 11.4/12.1-System. Das Starten von X- oder KDE-Applikationen wird aber verweigert. </p>
<p>Bei KDE-Applikationen taucht die Warnung auf, dass kein Zugang zum X-Server möglich sei. Dies obwohl man ggf. auf dem Zielsystem mit &#8220;xhost + <em>RemotePCAdresse</em>&#8221; den Zugriff explizit zugelassen oder aber entsprechende Auth-Mechanismen und Schlüssel korrekt eingerichtet hat.  </p>
<p>Bei Standard-X-Applikationen wie &#8220;xterm&#8221; erhält man eine Nachricht, dass die Umgebungsvariable DISPLAY nicht gesetzt sei. Ein &#8220;echo $DISPLAY&#8221; zeigt, dass dies auch stimmt. Eigentlich sollte hier ein &#8220;localhost:10.0&#8243; als Wert auftauchen. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Problembehebung</p>
<p><strong>Lösung 1:</strong> Aktiviert man IPV6 mittel YAST wieder und rebootet man, so läuft danach alles wieder wie man es erwartet. </p>
<p><strong>Lösung 2:</strong> Bei diesem Ansatz geht man an die Wurzel des Problems. Diese Lösung ist allerdings nur dann sinnvoll, wenn man IPV6 wirklich nicht verwenden will. Der Grund des Problems liegt in der Konfiguration des SSH-Daemons &#8220;sshd&#8221;. Die entsprechende Konfigurationsdatei liegt unter </p>
<p style="margin-left:20px;">/etc/ssh/sshd_config</p>
<p>Hier gelten weitgehend die Defaulteinstellungen, die man (zumindest bei SuSE) auch in den kommentierten Zeilen der Datei findet. Von Interesse ist die Vorgabe </p>
<p style="margin-left:20px;">#AddressFamily any</p>
<p>Auf Basis dieser Einstellungen sucht der ssh-Daemon nach beiden Protokollen gleichzeitig. Obwohl bei deaktiviertem IPV6 nur IPV4 gefunden werden muss. Für reines IPV4 hilft nun statt &#8220;any&#8221; die Einstellung &#8220;inet&#8221;, also : </p>
<p style="margin-left:20px;"># changed by rmo - because of IPV6 - IPV4 bug (see https://bugzilla.novell.com/show_bug.cgi?id=686477)<br />
AddressFamily inet</p>
<p>Konfigurationsdatei speichern, mittels Yast IPV6 deaktivieren, rebooten und testen. &#8220;ssh -X&#8221; funktioniert dann von einem Remote-PC aus wie  erwartet - obwohl IPV6 auf dem Opensuse 11-4/12.1-Host deaktiviert ist. X-Anwendungen lassen sich nun starten.    </p>
<p>Bleibt nur die Frage, wer sich darum kümmern wird, dass bei künftigen Releases das &#8220;any&#8221; in der sshd-Konfiguration alternativ als IPV6 <em>oder</em> IPV4 interpretiert wird.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Nachtrag 05.12.2012: Zusätzliches sshd-Problem unter Opensuse 12.1 - Fehlermeldung zu DSA-Keys</p>
<p>Bei Upgrades zu und bei einer Neuinstallation von Opensuse 12.1 bin ich darüber gestolpert, dass das Starten des &#8220;sshd&#8221;-Dämons mit der Meldung: </p>
<p style="margin:20px;">Generating /etc/ssh/ssh-host-dsa-key<br />
DSA keys must be 1024 bits<br />
Startig SSH daemon<br />
Could not load host key:<br />
/etc/ssh/ssh-host-dsa-key </p>
<p>quittiert wird. Die letzte Meldung ist korrekt:  der Key wird zumindest nicht am erwarteten Bestimmungsort erzeugt. Ohne die genaue Fehlerursache in den entsprechenden Skripts analysiert zu haben, möchte ich darauf hinweisen, dass man das Problem über einen mutigen händischen Versuch zur Schlüsselgenerierung   </p>
<p style="margin-left:20px;">ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key</p>
<p>umgehen kann.  </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2012/01/03/opensuse-114121-problem-mit-ssh-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cyrus IMAP unter Opensuse auf die Schnelle</title>
		<link>http://linux-blog.anracom.com/2011/11/28/cyrus-imap-auf-die-schnelle/</link>
		<comments>http://linux-blog.anracom.com/2011/11/28/cyrus-imap-auf-die-schnelle/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 18:58:50 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Postfix, Cyrus, Kmail]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/11/28/cyrus-imap-auf-die-schnelle/</guid>
		<description><![CDATA[Mein Freund Michael fragte mich mal, was ich tue, um alle meine gesammelten (alten) Mails auf Reisen einsehen zu können, wenn ich keine Verbindung zum Internet habe. 
Ich denke, dass die Voraussetzung mit dem Internet gar nicht so entscheidend ist, denn nicht jeder möchte alle seinen Firmenmails oder auch seinen privaten Mails dauerhaft bei einem [...]]]></description>
			<content:encoded><![CDATA[<p>Mein Freund Michael fragte mich mal, was ich tue, um alle meine gesammelten (alten) Mails auf Reisen einsehen zu können, wenn ich keine Verbindung zum Internet habe. </p>
<p>Ich denke, dass die Voraussetzung mit dem Internet gar nicht so entscheidend ist, denn nicht jeder möchte alle seinen Firmenmails oder auch seinen privaten Mails dauerhaft bei einem Provider vorrätig halten. Und nicht jeder hat einen eigenen Root-Server mit IMAP-Komponente im Internet. </p>
<p>In unserer kleinen Firma laden wir z.B. alle Mails von unseren verschiedenen Internet-Providern per &#8220;fetchmail&#8221; herunter und transferieren sie über Postfix auf einen lokalen, eigenen IMAP-Server (Cyrus) im Hausnetz. Dort werden Sie nach Kunden vorgefiltert. </p>
<p>Schon aus Sicherheitsgründen lassen wir unsere Mails nicht im Internet herumstehen. Wenn wir dann mal länger verreisen müssen, gibt es für uns zwei Methoden, unsere bisherigen Mails, die z.T. mehrere Gigabyte umfassen, unter Linux auf einem Laptop einzusehen: </p>
<ol>
<li><strong>Disconnected IMAP-Account unter Kmail:</strong> Ich lege unter Kmail einen sog. &#8220;Disconnected-IMAP-Account&#8221; an und synchronisiere den vor unserer Abreise mit den Inhalten der mir zugänglichen Mailverzeichnisse auf unserem IMAP-Server. Das funktioniert in der Regel recht gut und ist sicher die einfachste Methode, seine IMAP-Mails vom hauseigenen Server auf Reisen mitzunehmen.
<p> Mit folgenden nicht unwesentlichen Einschränkungen: Solange man sich auf seine KDE-Installation verlassen kann, diese nicht grundlegend ändert oder updated, und keine versehentliche Synchronization des Disconnected-Imap-Accounts mit dem Nirwana anstößt &#8230;. Ein weiterer  Nachteil ist natürlich der lokal auf dem Laptop benötigte Plattenplatz  - in unserem Fall doch einige Gigabyte. </p>
</li>
<li style="margin-top:10px;"><strong>Zugriff auf ein IMAP-Backup unter einem lokalen IMAP-Server:</strong> Ich kopiere zur Sicherheit den kompletten Inhalt des Verzeichnisses &#8220;/var/spoool/imap&#8221; von unserem SLES auf ein geschütztes Verzeichnis meines Laptops (mit cp -dpRv) oder eine kryptierte externe USB-Harddisk. Das ist ein sehr nützlicher Backup. Zur Not implementiere ich mir nämlich auf die Schnelle einen lokalen Cyrus-Server auf meinem Laptop und rekonstruiere mir dann die Mailverzeichnisse, die mich interessieren. Dann kann ich mit KMail auf dem Laptop auf den lokalen Cyrus-Server zugreifen und die benötigten Mails einsehen.
<p> Ein Vorteil dieser  Lösung ist u.a. der, dass man nicht immer gleich alle Mailverzeichnisse zur Verfügung stellen muss, sondern evtl. nur die gerade interessanten, z.B. kundenbezogene. (Voraussetzung ist eine hinreichende Gliederung der Mailverzeichnis-Hierarchie) </li>
</ol>
<p>Die Variante 2) ist auch dann ein schöner Rettungsanker, wenn man sich bei einem KDE-Upgrade in der Fremde (z.B. von KDE 4.5 auf 4.7) seine Akonadi- und Kmail-Installation auf einem Opensuse 11.4 praktisch zwangsweise zerschießen muss. Denn der Sprung vom Kmail 1.x zu Kmail2 und die entsprechend notwendigen Migrationen von IMAP-Resourcen funktionieren schlicht nicht fehlerfrei. </p>
<p>Oft genug muss der KDE-Nutzer seit der Akonadi-Einführung feststellen, dass Kmail sich nach fehlgeschlagenen Migrationsversuchen nicht mehr starten läßt. Dann bleibt einem nur mehr der Neuaufbau der Akonadi-Ressourcen und von Kmail durch Löschen der Inhalte entsprechender Akonadi- und Kmail-Konfigurationsdateien. Leider können dabei auch die &#8220;Disconnected-IMAP-Verzeichnisse&#8221; vom alten Kmail verloren. Das passierte mir neulich in Norwegen. Hat man dann seine IMAP-Dateien in Form eines Backups dabei, ist das kein Weltuntergang. </p>
<p>Wie kommt man also auf die Schnelle unter Opensuse zu einem lokalen Cyrus IMAP-Server, mit dem man die Mails eines IMAP-Backups einsehen kann? Das ist gar nicht so schwer, wenn man bei der Sicherheit Abstriche macht und auf eine Open-SSL-Umgebung für den lokalen IMAP-Server verzichtet. Den IMAP-Port des Cyrus-Servers kann man durch eine Firewall ja nach außen gezielt sperren, wenn man sich mit seinem Laptop während einer Reise ins Internet begibt. </p>
<p>Die nachfolgende Installation ist allerdings so simpel, dass sie kaum für mehr als das Lesen alter Mails aus einem Backup geeignet ist. Sie kann nicht für einen produktiven Betrieb - z.B. zusammen mit Postfix - eingesetzt werden. Aber das ist in diesem Artikel auch gar nicht die Zielsetzung.</p>
<p>Wer sich genauer mit CYRUS IMAP und SASL befassen will, sei auf dir Dokumentation unter </p>
<p>/usr/share/doc/packages/cyrus-imapd/doc/</p>
<p>und </p>
<p>/usr/share/doc/packages/cyrus-sasl/doc/</p>
<p>hingewiesen. (Hierzu muss man sich unter Opensuse natürlich die RPMs für die Paket-Dokumentation installiert haben.) </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 1: Notwendige Pakete der Opensuse Repositories</p>
<p>Eine Voraussetzung der Cyrus-Installation ist , dass man sich bereits die RPM-Pakete von Opensuse für den lokalen Cyrus-Imap-Server und den SASL-Authentifizierungsmechanismus installiert hat. Folgende Pakte stellen nach meiner  Erfahrung das notwendige Minimum dar:   </p>
<ul>
<li>cyrus-imapd</li>
<li>cyrus-sasl</li>
<li>cyrus-sasl-plain</li>
<li>cyrus-sasl-saslauthd</li>
<li>perl-Cyrus-IMAP</li>
<li>perl-Athen-SASL</li>
</ul>
<p>Will man neben &#8220;Plain&#8221; andere sicherere SASL-Mechanismen wie z.B. &#8220;digest-MD5&#8243; (für die Passwortverschlüsselung) benutzen, so muss man sich die entsprechenden Pakte zusätzlich installieren. Ich gehe auf solche Varianten aber nachfolgend nicht ein. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 2: Starten der Dämonen</p>
<p>Bevor man administrativ tätig werden kann, müssen die Cyrus- und SASL-Dienste laufen. Man prüft den Status der Dienste mit </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; rccyrus status <br /># &nbsp; rcsaslauthd status </p>
<p>Nötigenfalls startet man die Dienste unter Opensuse explizit per   </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; rccyrus start<br /># &nbsp; rcsaslauthd start </p>
<p>Für ein dauerhaften Start beim Hochfahren trägt man die Dienste über <strong>&#8220;Yast &gt;&gt; Systemdienste (Runlevel)&#8221;</strong> für die gewünschten Runlevels [ z.B. 3 und 5 ] ein.              </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 3: User &#8220;cyrus&#8221; als Mitglied der Gruppe &#8220;mail&#8221; überprüfen</p>
<p>Wir prüfen dann, dass es einen User &#8220;cyrus&#8221; im System gibt. Dieser wird unter Suse normalerweise bei der RPM-Installation automatisch angelegt und ist Mitglied der Gruppe &#8220;mail&#8221;. Sein Homeverzeichnis ist &#8220;/var/lib/imap&#8221;. Er sollte ferner Owner des Verzeichnisses &#8220;var/spool/imap&#8221; sein. </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">laplux:~ # ls -l /var/spool<br /> &#8230;..<br />drwxr-x&#8212;  3 cyrus  mail   4096 Nov 17 17:26 imap<br /> &#8230;.</p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 4: SASL für imap als Authentifikations-Mechanismus festlegen</p>
<p>Der Cyrus-SASL-Mechanismus muss in der Datei &#8220;/etc/imapd.conf&#8221; als Auth-Verfahren für den Cyrus IMAP-Server festgelegt werden. Siehe hierzu die rot markierten Einträge im nachfolgenden Listing der &#8220;imapd.conf&#8221;-Datei. Diese sehr einfache Datei wurde mit der Installation der RPM-Pakete angelegt (bis auf einen Eintrag &#8220;allowplaintext&#8221;, den wir weiter unten erläutern):   </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">
configdirectory: /var/lib/imap<br />
partition-default: /var/spool/imap<br />
sievedir: /var/lib/sieve<br />
admins: cyrus<br />
<span style="color:#A90000; font-weight:bold;">allowanonymouslogin: no</span><br />
autocreatequota: 10000<br />
reject8bit: no<br />
quotawarn: 90<br />
timeout: 30<br />
poptimeout: 10<br />
dracinterval: 0<br />
drachost: localhost<br />
<span style="color:#A90000; font-weight:bold;">sasl_pwcheck_method: saslauthd</span><br />
lmtp_overquota_perm_failure: no<br />
lmtp_downcase_rcpt: yes<br />
&nbsp;<br />
# Changed by cyrus for an installation of intern backup server<br />
<strong>allowplaintext:yes</strong><br />
&nbsp;<br />
#<br />
# if you want TLS, you have to generate certificates and keys<br />
#<br />
#tls_cert_file: /usr/ssl/certs/cert.pem<br />
#tls_key_file: /usr/ssl/certs/skey.pem<br />
#tls_ca_file: /usr/ssl/CA/CAcert.pem<br />
#tls_ca_path: /usr/ssl/CA
</p>
<p>Danach starten wir den IMAP-Server per </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; rccyrus restart</p>
<p>neu. </p>
<p><strong>Hinweis 1:</strong> Die Konfigurationsvielfalt für einen ausgewachsenen IMAP-Server kann man nach einem Blick in die Manpage erahnen: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp;man 5 imapd.conf</p>
<p>Für unsere einfachen Zwecke genügen die obigen Einträge aber vollkommen.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 5: SASL-Passwort für den User &#8220;cyrus&#8221; setzen und die Datei &#8220;sasldb2&#8243; lesbar machen</p>
<p>Auch der User &#8220;cyrus&#8221; muss sich natürlich gegenüber dem IMAP-Server authentifizieren.  Als User &#8220;root&#8221; legen wir nun das SASL-Passwort für cyradm fest. Hierzu benutzten wir das Programm &#8220;/usr/sbin/saslpasswd2&#8243;: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">laplux:~ # saslpasswd2 -c cyrus<br />Password:<br />Again (for verification): </p>
<p>Dabei geben wir das gewünschte Passwort (nachfolgend mit &#8220;CYRUS_PWD&#8221; bezeichnet) zweimal ein. </p>
<p>Zudem müssen wir dafür sorgen, dass der User &#8220;cyrus&#8221; die Datei &#8220;/etc/sasldb2&#8243; lesen kann. Am einfachsten geschieht dies in unserem Fall, indem man &#8220;cyrus&#8221; zum Owner macht:  </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">laplux:~ # chown cyrus /etc/sasldb2*</p>
<p>Bei komplexeren Konfigurationen, in denen mehrere Programme SASL nutzen, muss hier bei Bedarf geeignete Gruppen aufbauen, die noch andere User mit aufnehmen. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 6: Mailverzeichnis für einen neuen Mailuser &#8220;rmx&#8221; anlegen</p>
<p>Unser Mailuser, unter dessen ID wir auf die Mails zugreifen wollen, habe die UID &#8220;rmx&#8221;. Wir legen nun einen Mailordner (Eingangskorb) für den User &#8220;rmx&#8221; an. Dazu wechseln wir zum User &#8220;cyrus&#8221; und führen dann das Kommando <strong>&#8220;cyradm&#8221;</strong> aus, das uns in eine eigene Kommandoumgebung für den Cyrus-Server führt:   </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">lap3lux64:~ # &nbsp; su - cyrus <br />
cyrus@lap3lux64:~>  cyradm <br />
cyradm> connect localhost <br />
Password: <br />
localhost.localdomain> lm<br />
user.rau (\HasChildren)<br /> <br />
user.rau.Gesendete Objekte (\HasNoChildren)  <br />
user.rau.alpha_inbox (\HasNoChildren) <br /> <br />
localhost.localdomain> cm user.rmx <br />
localhost.localdomain> lm <br />
user.rau (\HasChildren) <br /> <br />
user.rau.Gesendete Objekte (\HasNoChildren)  <br />
user.rau.alpha_inbox (\HasNoChildren) <br /> <br />
user.rmx (\HasNoChildren) <br /> <br />
localhost.localdomain>
</p>
<p>Zu den Kommandos im Einzelnen: </p>
<p>Bevor wir ein Verzeichnis anlegen können, müssen wir uns mit unserem lokalen cyrus-Server verbinden. Dies geschieht über das cyradm-Kommando &#8220;connect&#8221; - hier &#8220;connect localhost&#8221;. Das einzugebende Passwort ist nun genau das zuvor eingerichtete SASL-Passwort &#8220;CYRUS_PWD&#8221;. </p>
<p>Nach der erfolgreichen Verbinung zum lokalen IMAP-Server sehen wir uns zunächst einmal um. Das oben dargestellte Kommando <strong>&#8220;lm&#8221;</strong> zeigt alle bereits vorhandenen Mailverzeichnisse an. Beginnt man von Scratch wird hier natürlich kein Verzeichnis angezeigt. Im obigen Beispiel sind bereits Verzeichnisse für einen User &#8220;rau&#8221; vorhanden. </p>
<p>IMAP arbeitet mit ganzen hierarchischen Mail-Verzeichnisbäumen. In der IMAP-Verzeichnishierarchie wird ein User-Zweig für den User mit der ID &#8220;uid&#8221; normalerweise durch Erzeugen des Verzeichnisses <strong>&#8220;user.uid&#8221;</strong> angelegt. </p>
<p>Der Schlüsselbefehl für das Anlegen eines Mailverzeichnisses ist <strong>&#8220;cm&#8221;</strong>. Legt man keinen speziellen Posteingang an, so kann dieses Verzeichnis auch als Default-Posteingangskorb benutzt werden. Das abschließende &#8220;lm&#8221; zeigt an, dass das gewünschte Verzeichnis erstellt wurde. </p>
<p><strong>Hinweis 2:</strong> Man kann alle Befehle, die einem unter der &#8220;cyradm&#8221;-Oberfläche zur Verfügung stehen, durch Eingabe von <strong>&#8220;help&#8221;</strong> einsehen. Die cyradm-Umgebung verläßt man mit <strong>&#8220;quit&#8221;</strong> oder <strong>&#8220;exit&#8221;</strong>. </p>
<p><strong>Hinweis 3:</strong> Hier lohnt es sich, als root einen vergleichenden Blick auf die Verzeichnisstruktur unter &#8220;/var/spool/imap/user/rmx&#8221; zu werfen.      </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">laplux:/var/spool/imap/user/rmx # ls <br />
cyrus.cache  cyrus.header  cyrus.index
</p>
<p>Man erkennt, dass bereits Filestrukturen zur Indizierung und zum Cachen der Verzeichnisinhalte angelegt wurden. Diese sind zu füllen, sobald wir das Verzeichnis mit Inhalt versehen.    </p>
<p><strong>Hinweis 4: </strong>Die Hierarchie der Mailverzeichnisse wird in der &#8220;cyradm&#8221;-Umgebung durch eine einfach qualifizierende Punkt-Notation erfasst - z.B.: user.uid.suppliers.suse.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 7: SASL-Passwort für den Mail-User &#8220;rmx&#8221; setzen und dem User Rechte an seinem Mailverzeichnis geben </p>
<p>Dem Leser ist sicher aufgefallen, dass auch der User &#8220;rmx&#8221; natürlich noch SASL bekannt gemacht werden muss. Ferner kann man sich denken, dass ein IMAP-User hinreichende Rechte bekommen muss, um auf die ihm zugeordneten IMAP-Verzeichnisse auch zugreifen zu dürfen. Wir benutzen zunächst wieder &#8220;saslpasswd2&#8243; als root: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">laplux:~ # saslpasswd2 rmx<br />
Password:<br /> <br />
Again (for verification):
</p>
<p>Das Passwort für den User &#8220;rmx&#8221; sei &#8220;RMX_PWD&#8221;. Nun gehen wir noch einmal in die &#8220;cyradm&#8221;-Umgebung und verbinden uns mit dem lokalen Server und schauen nach, wie wir Rechte abfragen und vergeben können :</p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">
ap3lux64:~ # su - cyrus <br />
cyrus@lap3lux64:~> cyradm <br />
cyradm> connect localhost <br />
Password:  <br />
localhost.localdomain> help <br />
&nbsp;<br />
authenticate, login, auth         authenticate to server <br />
chdir, cd                         change current directory <br />
createmailbox, create, cm         create mailbox <br />
deleteaclmailbox, deleteacl, dam  remove ACLs from mailbox  <br />
deletemailbox, delete, dm         delete mailbox  <br />
disconnect, disc                  disconnect from current server  <br />
exit, quit                        exit cyradm  <br />
help, ?                           show commands  <br />
info                              display mailbox/server metadata  <br />
listacl, lam, listaclmailbox      list ACLs on mailbox  <br />
listmailbox, lm                   list mailboxes  <br />
listquota, lq                     list quotas on specified root  <br />
listquotaroot, lqr, lqm           show quota roots and quotas for mailbox  <br />
mboxcfg, mboxconfig               configure mailbox  <br />
reconstruct                       reconstruct mailbox (if supported)  <br />
renamemailbox, rename, renm       rename (and optionally relocate) mailbox  <br />
server, servername, connect       show current server or connect to server  <br />
setaclmailbox, sam, setacl        set ACLs on mailbox  <br />
setinfo                           set server metadata  <br />
setquota, sq                      set quota on mailbox or resource  <br />
subscribe, sub                    subscribe to a mailbox  <br />
unsubscribe, unsub                unsubscribe from a mailbox  <br />
version, ver                      display version info of current server  <br />
xfermailbox, xfer                 transfer (relocate) a mailbox to a different server  <br />
&nbsp;<br />
localhost.localdomain> lam user.rmx  <br />
rmx lrswipkxtecda  <br />
&nbsp;<br />
localhost.localdomain> sam <br />
usage: setaclmailbox mailbox id rights [id rights &#8230;]<br />
&nbsp;<br />
localhost.localdomain> sam user.rmx rmx all<br />
localhost.localdomain> lam user.rmx<br />
rmx lrswipkxtecda<br />
&nbsp;<br />
localhost.localdomain> sam user.rmx rau all<br />
localhost.localdomain> lam user.rmx<br />
rmx lrswipkxtecda<br />
rau lrswipkxtecda<br />
&nbsp;<br />
localhost.localdomain> cm user.rmx.sent<br />
localhost.localdomain> lam user.rmx.sent<br />
rmx lrswipkxtecda<br />
rau lrswipkxtecda<br />
&nbsp;<br />
localhost.localdomain> sam user.rmx rau none<br />
localhost.localdomain> lam user.rmx<br />
rmx lrswipkxtecda<br />
localhost.localdomain>
</p>
<p>Das Help-Kommando führt uns zu den Kommandos <strong>&#8220;lam&#8221;</strong> für die Anzeige der Access-Rights und <strong>&#8220;sam&#8221;</strong> zum Setzen der Rechte. Die oben im Listing angezeigten Kommandos sind dann kaum erläuterungsbedürftig. </p>
<p>Wir erkennen, dass der User &#8220;rmx&#8221; bereits automatisch alle Rechte am Mail-Verzeichnis &#8220;uxer.rmx&#8221; zugeteilt bekommen hat. Diese Rechte werden auch auf weitere Subverzeichnisse &#8220;vererbt&#8221;. Dies gilt übrigens auch für andere User - hier z.B., wenn man auch dem User &#8220;rau&#8221; sämtliche Rechte am Verzeichnis &#8220;user.rmx&#8221; einmal testweise zuordnet. Am Schluss nehmen wir dem User &#8220;rau&#8221; die zugewiesenen Rechte wieder weg.  </p>
<p><strong>Hinweis 5:</strong> Welche Rechte es in Bezug auf Mailverzeichnisse unter Cyrus IMAP gibt und was sie bedeuten, erfährt man durch Studium der folgenden Doku-Seite, die man in einem Browser betrachten kann: </p>
<p style="margin-left:20px;">file:///usr/share/doc/packages/cyrus-imapd/doc/overview.html#aclrt </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 7: Mails aus dem Backup kopieren und Mailverzeichnis rekonstruieren</p>
<p>Nun wollen wir das Verzeichnis &#8220;user.rmx&#8221; mit Mailinhalt füllen. Dies geschieht einfach durch <strong>Umkopieren der Inhalte des korrespondierenden Verzeichnisses in unserem Backup</strong> von &#8220;/var/spool/imap&#8221;, das wir von unserem richtigen IMAP-Server angelegt hatten. </p>
<p>Typischerweise haben wir unsere Sicherung auf einem USB-Stick oder einer USB-Platte dabei. Diese sei lokal am Laptop unter unter dem Verzeichnis &#8220;/backup&#8221; gemountet und die ursprüngliche Verzeichnisstruktur &#8220;/var/spool/imap&#8221; sei unter dem Verzeichnis &#8220;/bup_cyrus&#8221; abgelegt.  </p>
<p>Dort - also am Ort des Backups - suchen wir unter den obigen Annahmen als &#8220;root&#8221; das Verzeichnis &#8220;/var/spool/imap/user/rmx&#8221;. Unter den obigen Annahmen finden wir es unter: </p>
<p style="margin-left:20px;">/backup/bup_cyrus/var/spool/imap/user/rmx&#8221;  </p>
<p>(Natürlich können wir ggf. auch ein anderes Verzeichnis wählen, welches uns interessiert und das wir anschließend im lokalen Cyrus gerne unter user.rmx öffnen möchten. Nur Mails aus unterschiedlichen Usprungs-Verzeichnissen sollte man nicht im selben Zielverzeichnis mixen.) </p>
<p>Wir kopieren dann vom Backup alle Files (Mails) vom gewünschten Verzeichnis - hier also aus &#8220;/backup/bup_cyrus/var/spool/imap/user/rmx&#8221; - in das korrespondierende Mailverzeichnis &#8220;/var/spool/imap/user/rmx&#8221;  auf unserem lokalen IMAP-Server </p>
<p><strong>Ausgenommen werden vom Kopiervorgang evtl. vorhandene Subverzeichnisse und Files, die mit &#8220;cyrus.&#8221; beginnen (cyrus.cache, cyrus.header, cyrus.index). </strong>    </p>
<p>Abschließend ändern wir mit </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">
laplux:~ # cd /var/spool/imap/user/rmx<br />
laplux:/var/spool/imap/user/rmx # chown  cyrus.mail *
</p>
<p>den Owner und die Gruppe der kopierten Dateien (= Mails) ab.  </p>
<p>Nun gehen wir wieder in den &#8220;cyradm&#8221;-Bereich und &#8220;rekonstruieren&#8221; das Verzeichnis für den Gebrauch. Dies geschieht über den Befehl <strong>&#8220;reconstruct&#8221;</strong>, der die Cyrus -Index- und Cyrus-Datenbankstrukturen gebrauchsfähig macht und auf den tatsächlichen aktuellen Inhalt des Verzeichnisses abstimmt: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">
lap3lux64:~ # su - cyrus<br />
cyrus@lap3lux64:~> cyradm<br />
cyradm> connect localhost<br />
Password: <br />
localhost.localdomain> reconstruct user.rmx<br />
localhost.localdomain> quit<br />
cyrus@lap3lux64:~>
</p>
<p>Je nach Größe des Inhaltes der transferierten Dateien dauert das etwas - nach meinen Erfahrungen geht der &#8220;reconstruct&#8221;-Prozess aber auch bei größeren Mailverzeichnissen recht zügig vonstatten. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 9: LOGIN über PLAIN-Mechanismus zulassen und Test des Zugangs mit &#8220;imtest&#8221;</p>
<p>Uns fehlt noch ein wichtiger Eintrag, der sicherheitsrelevant ist und in der Datei &#8220;imapd.conf&#8221; vorgenommen werden muss. Da wir uns nur lokal einloggen wollen, ist keine SSL-Struktur mit Zertifikaten erforderlich - wenn wir auf unserem Laptop den potentiellen Zugriff von außen per Firewall dicht machen. </p>
<p>Ein Plain-Login muss für den Cyrus-Server aber explizit zugelassen werden! Sie finden den notwendigen Eintrag </p>
<p># Changed by cyrus for installation of intern backup server<br />
allowplaintext:yes    </p>
<p>bereits im obigen Dateil-Listing.   Wir hatten ihn dort nur noch nicht angesprochen. </p>
<p>Wir starten nach der obigen Änderung den Imap-Server per</p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; rccyrus restart </p>
<p>zur Sicherheit nochmal.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 10: LOGIN mit imtest testen</p>
<p>Wir können nun den ordnungsgemäßen Zugang zum IMAP-Server mit dem Befehl &#8220;imtest&#8221; testen.  </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">
lap3lux64:~ # &nbsp; imtest -v -a rmx -u rmx -m login localhost <br />
&nbsp;<br />
S: * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=GSSAPI AUTH=LOGIN AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5  <br />
SASL-IR COMPRESS=DEFLATE] laplux.mydomain.de Cyrus IMAP v2.3.16 server ready <br />
Please enter your password:  <br />
C: L01 LOGIN rmx {7}  <br />
S: + go ahead  <br />
C: <omitted>  <br />
S: L01 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED COMPRESS=DEFLATE ACL RIGHTS=kxte QUOTA MAILBOX-  <br />REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ   <br />THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE SCAN IDLE X-NETSCAPE URLAUTH]<br />
&nbsp; <br />
User logged in  <br />
Authenticated.  <br />
Security strength factor: 0
</p>
<p>Als Passwort muss man hier natürlich das &#8220;RMX_PWD&#8221; angeben. Wenn alles OK ist, sollte dann die Meldung &#8220;authenticated&#8221; erscheinen. Weitere Optionen zum &#8220;imtest&#8221;-Kommando liefert die zugehörige &#8220;man page&#8221;.   </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 11: IMAP-Zugang in Kmail konfigurieren und testen</p>
<p>Nach diesem positiven Zwischenergebnis ist alles bereitet, um sich unter Kmail oder einem anderen E-Mail-Programm einen neuen, zusätzlichen Account für den lokalen IMAP-Server einzurichten.  Man verfährt hierbei genauso wie mit jedem anderen IMAP-Account. </p>
<p>Bei der Einrichtung gilt:  Der anzugebende IMAP-Server ist &#8220;localhost&#8221;, die User-Id ist &#8220;rmx&#8221;, das zugehörige Password in unserem Fall dasjenige, das wir mit &#8220;RMX-PWD&#8221; bezeichnet hatten. </p>
<p>Danach taucht der lokale Server mit dem bislang einzigen Verzeichnis und dessen Mail-Inhalt auf. </p>
<p>Sind wir an einer Einsicht in andere Verzeichnisse aus unserem Backup interessiert, so legen wir über &#8220;cyradm&#8221; einfach entsprechende weitere Verzeichnisse an, kopieren die Inhalte aus dem Backup hinein und führen jeweils ein &#8220;reconstruct&#8221; für das neue Verzeichnis der entstehenden Hierarchie durch. </p>
<p>Viel Spass nun beim Lesen der IMAP-Mails aus einem Backup in der Fremde.     </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/11/28/cyrus-imap-auf-die-schnelle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kontact 4.7 und OX 6 unter Opensuse 11.4 - Teil II</title>
		<link>http://linux-blog.anracom.com/2011/11/05/kontact-47-und-ox-6-unter-opensuse-114-teil-ii/</link>
		<comments>http://linux-blog.anracom.com/2011/11/05/kontact-47-und-ox-6-unter-opensuse-114-teil-ii/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 17:27:52 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Open-Xchange 6]]></category>

		<category><![CDATA[Kontact - Kmail]]></category>

		<category><![CDATA[Erfahrungsberichte]]></category>

		<category><![CDATA[Open-Xchange]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/11/05/kontact-47-und-ox-6-unter-opensuse-114-teil-ii/</guid>
		<description><![CDATA[Einleitung und Inhalte dieses 2-ten Beitrags zu einer OX 6 Testinstallation
Im ersten Teil dieses Beitrages zu einer OX6-Testinstallation haben wir eine OX6-Grundinstallation auf einem &#8220;Opensuse 11.4&#8243;-Server vorgenommen. Siehe auch:
http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/ . 
Es stand noch aus, einen ersten OX-Kontext und zugehörige OX6-User anzulegen. 
Letztere sollen unter der OX-eigenen Web-Oberfläche auf den externen IMAP-Server zugreifen können. Der IMAP-Server, [...]]]></description>
			<content:encoded><![CDATA[<p style="font-size:16px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Einleitung und Inhalte dieses 2-ten Beitrags zu einer OX 6 Testinstallation</p>
<p>Im ersten Teil dieses Beitrages zu einer OX6-Testinstallation haben wir eine OX6-Grundinstallation auf einem &#8220;Opensuse 11.4&#8243;-Server vorgenommen. Siehe auch:<br />
<a href="http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/">http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/ </a>. </p>
<p>Es stand noch aus, einen ersten OX-Kontext und zugehörige OX6-User anzulegen. </p>
<p>Letztere sollen unter der OX-eigenen Web-Oberfläche auf den externen IMAP-Server zugreifen können. Der IMAP-Server, mit dem der OX6-Server kooperieren soll, läuft in unserer Testkonfiguration auf einem separaten Server. Wir werden uns nachfolgend daher damit auseinander müssen, wie sich diese Trennung der Serversysteme auf die Einrichtung von OX6-Usern auswirkt. </p>
<p>In einem nachfolgenden dritten Blog-Beitrag wollen wir abschließend testen, ob und wie der Zugriff von Kontact auf den OX6-Server funktioniert. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Anlegen eines Default-Kontextes</p>
<p>Im ersten Teil sind wir bereits auf Kontexte eingegangen. Wir legen nun als &#8220;oxadminmaster&#8221; den sog. Default-Kontext an und kreieren dabei gleichzeitig den zugehörigen <strong>Default-Kontext-Administrator</strong>, dem wir hier willkürlich den Usernamen <strong>&#8220;oxadmin&#8221;</strong> geben. Das Ganze geschieht wieder durch ein Skript: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp;  /opt/open-xchange/sbin/createcontext  &nbsp;&minus;oxadminmaster   &nbsp;&minus;P MY_OX_MASTER_ADMIN_PWD    &nbsp;&minus;c 1    &nbsp;&minus;u oxadmin    &nbsp;&minus;d &#8220;Context Admin&#8221;    &nbsp;&minus;g Admin    &nbsp;&minus;s User    &nbsp;&minus;p MY_OX_CONTEXT_ADMIN_PWD    &nbsp;&minus;L defaultcontext    &nbsp;&minus;e oxadmin@mydomain.de   &nbsp;&minus;q 1024 &nbsp;&minus;&minus;access-combination-name=all
</p>
<p>Ein paar Hinweise zu den Optionen (s. auch die Befehlsbeschreibung im OX6-Manual &#8220;OX6-Provisioning.pdf&#8221;):  </p>
<ul>
<li>Das &#8220;-c 1&#8243; definiert die Kontext-Id, </li>
<li style="margin-top:10px;">das &#8220;-u&#8221; die User-ID, </li>
<li style="margin-top:10px;">das &#8220;-d&#8221; den Displaynamen für den Kontext-Admin, </li>
<li style="margin-top:10px;">das &#8220;-g&#8221; den &#8220;Given Name&#8221; (Vorname), </li>
<li style="margin-top:10px;">das &#8220;-s&#8221; den Nachnamen, </li>
<li style="margin-top:10px;">das &#8220;-L&#8221; das sog. Login-Mapping (hier eben auf den Defaultkontext), </li>
<li style="margin-top:10px;">das &#8220;-e&#8221; die E-Mail-Adresse des Kontext-Admins, </li>
<li style="margin-top:10px;">das &#8220;-q&#8221; den kontext-weiten Quota-Betrag in MByte (!), </li>
<li style="margin-top:10px;">ein  &#8220;-N&#8221; einen Kontext-Namen.</li>
</ul>
<p>Ein Kontext kann auch einen Namen erhalten - hierzu ist der Parameter &#8220;-N&#8221; einzusetzen. Dieser Name kann z.B. beim Login-Mapping verwendet werden (s.u.). </p>
<p>Als Email-Adresse sind wir von einem IMAP-Account &#8220;oxadmin@mydomain.de&#8221; ausgegangen, der über unseren IMAP-Server versorgt wird. Unser IMAP-Server ist dabei wie gesagt nicht identisch mit dem Server des OX6-Systems.  </p>
<p>Obwohl die Kommandos für die spätere Anlage normaler OX6-Anwender ähnlich sind, ist die Anlage des &#8220;Kontext-Administrators&#8221; ein besonderer Akt, der initial die Berechtigung des OX6-Adminmasters erfordert.     </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Hinweis zu mehreren Kontexten und zum kontextspezifischen Login-Namen eines Users</p>
<p>Legt man später mehrere Kontexte an, so geschieht dies für den zweiten Kontext etwa über  </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; /opt/open-xchange/sbin/createcontext  &nbsp;&minus;A oxadminmaster  &nbsp;&minus;P MY_OX_MASTER_ADMIN_PWD  &nbsp;&minus;c 2  &nbsp;&minus;u oxadmin  &nbsp;&minus;d &#8220;Context Admin&#8221;  &nbsp;&minus;g Admin  &nbsp;&minus;s User  &nbsp;&minus;p MY_OX_CONTEXT_ADMIN_PWD  &nbsp;&minus;e oxadmin@mydomain.de &nbsp;&minus;q 1024 &nbsp;&minus;&minus;access-combination-name=all
</p>
<p>Man beachte 2 Dinge: </p>
<ul>
<li>Für das Anlegen des Kontextes und gleichzeitig des Kontext Admin ist die Autorisierung als &#8220;oxadminmaster&#8221; erforderlich. Die weitere Gestaltung des jeweiligen Kontextes und auch die Pflege der zugehörigen User obliegt danach aber dem jeweiligen Kontext-Admin! </li>
<li style="margin-top:10px;">Jeder User-Account ist kontextspezifisch. Auch der &#8220;oxadmin&#8221;-User für den Kontext 2 ist keineswegs identisch mit dem &#8220;oxadmin&#8221;-user für den Kontext 1 ! </li>
<li style="margin-top:10px;">In der Praxis sollten die Kontext-Administratoren natürlich besser unterschiedliche Bezeichnungen bekommen. </li>
</ul>
<p>Der Login in einen spezifischen Kontext durch Angabe der Kontextnummer nach dem Usernamen, also z.B. durch <strong>&#8220;oxadmin@1&#8243;</strong> für den Kontext mit der Nummer 1 oder <strong>&#8220;oxadmin@2&#8243;</strong> für den Kontext 2, falls - wie im obigen Beispiel - in jedem Kontext ein User &#8220;oxadmin&#8221; angelegt wurde. Möchte man statt mit Kontext-ID-Nummern lieber mit &#8220;Kontextnamen&#8221; operieren, so kann man ein entsprechendes &#8220;Login-Mapping&#8221; durch folgende &#8220;Kontextänderung&#8221; bewirken: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; /opt/open-xchange/sbin/changecontext &nbsp;&minus;A oxadminmaster &nbsp;&minus;P MY_OX_MASTER_ADMIN_PWD &nbsp;&minus;c 2 &nbsp;&minus;N verwaltung &nbsp;&minus;L 2,verwaltung</p>
<p>Dieser Befehl ordnet dem Kontext 2 den Namen &#8220;verwaltung&#8221; zu. Ein Login in diesen Kontext würde für den User &#8220;oxadmin&#8221; danach also auch mit der Eingabe der Userbezeichnung <strong>&#8220;oxadmin@verwaltung&#8221;</strong> in einer Login-Maske möglich sein. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Hinweis zu einem typischen Fehler aufgrund bestimmter anfänglich zu viel installierter OX6-Pakete </p>
<p>Bei mir schlug das Kommando zur Kontextanlage trotz Variationsversuchen zunächst zig-fach fehl, weil ich unvorsichtigerweise das Paket &#8220;open-xchange-admin-plugin-autocontextid&#8221; installiert hatte (s. hierzu auch die Warnung in Teil 1). </p>
<p>Ich wurde dann mit Fehlermeldungen der Art </p>
<p style="margin-left:20px; margin-top:0px; margin-bottom:0px;">Error: Unrecognized options on the command line: Unknown option &#8220;-c&#8217;</p>
<p style="margin-top:6px; margin-bottom:0px;">oder</p>
<p style="margin-left:20px; margin-top:6px; ">com.openexchange.admin.plugins.PluginException: com.openexchange.admin.rmi.exceptions.StorageException: Table &#8216;configdb.sequence_context&#8217; doesn&#8217;t exist</p>
<p>konfrontiert. Letzteres wenn ich testweise das &#8220;-c&#8221; weggelassen habe. Das Paket &#8220;open-xchange-admin-plugin-autocontextid&#8221; setzt nämlich Zusatztabellen voraus, die bei unserer Grundinstallation nicht implementiert wurden. </p>
<p>Siehe zu diesen Fehlern<br />
<a href="https://forum.open-xchange.com/showthread.php?5935-Error-option-c-not-recognized-when-running-createcontext">https://forum.open-xchange.com/showthread.php?5935-Error-option-c-not-recognized-when-running-createcontext</a></p>
<p>Ich habe in meinem Fall dann eine Neuinstallation mit genau den Paketen durchgeführt, die in der Referenz-Installationsanleitung (s. Teil 1) aufgeführt sind. Danach lief das Kommando einwandfrei durch. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Unzureichende Default-Einträge für den IMAP-Mail-Account des Kontext-Administrators</p>
<p>An dieser Stelle lohnt sich nun ein Blick mit PhpMyAdmin in das lokale MySQL-RDBMS, Datenbank &#8220;oxdatabase_{ID}&#8221;, <strong>Tabelle &#8220;user</strong>&#8220;.  Es zeigt sich, dass nun für den Kontext 1, der bislang auch unser Defaultkontext ist, ein Eintrag mit folgender Feldbelegung existiert: </p>
<ul>
<li>cid = 1</li>
<li style="margin-top:10px;">id = 2</li>
<li style="margin-top:10px;">imapServer = imap://localhost:143</li>
<li style="margin-top:10px;">mail = oxadmin@anracona.de</li>
<li style="margin-top:10px;">smtpServer = smtp://localhost:25</li>
<li style="margin-top:10px;">etc.</li>
</ul>
<p>Einen korrespondierenden Eintrag findet man in der <strong>Tabelle &#8220;user_mail_account</strong>&#8220;. Man beachte dort auch das Feld &#8220;default-flag&#8221;, das für diesen ersten Maileintrag zum User &#8220;oxadmin&#8221; auf &#8220;1&#8243; gesetzt ist. Für weitere Maileinträge, die man später über die Web-Oberfläche des OX6-Systems erzeugen kann, ist das nicht der Fall. Dort findet man dann eine &#8220;0&#8243;.   </p>
<p>Das obige Kommando für die Kontexterzeugung geht für den User &#8220;oxadmin&#8221; im jeweiligen Kontext also von der Existenz eines <strong>Default-Email-Accounts</strong> auf dem lokalen OX6-Server nach dem Muster &#8220;imap://localhost:143&#8243; aus. </p>
<p>Der würde in unserem Fall aber unglücklicherweise nicht funktionieren, da unser IMAP-System ja auf einem anderen Server vorausgesetzt wurde. Login-Versuche des eben angelegten Users &#8220;oxadmin&#8221; über die Web-Oberfläche des OX6 würden mit nachaltigen Fehlermeldungen und einer Abschaltung des E-Mail-Subsystems für diesen User quittiert werden. Also müssen wir die Angaben für den User ändern (s.u.).  </p>
<p>Dabei gilt es zu beachten, dass dem Default-Email-Account eines OX6-Users eine besondere Bedeutung zukommt. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Behandlung des Default-Mail-Accounts für OX6-User auf einem separaten IMAP-Server</p>
<p>Durch etwas Lesen und Herumprobieren findet man folgenden, eigentlich logischen Punkt heraus: </p>
<p style="margin-left:20px;">Jeder User auf dem OX-Server erhält eine <em><strong>Default-Mail-Adresse</strong></em> zugeordnet. Die implizite Annahme ist dabei wohl die, dass dieser Default-Mailaccount ein fester Bestandteil der OX6-Einrichtung ist und auf dem gleichen Server wie das OX-System selbst eingerichtet sein sollte. Alle anderen IMAP-Accounts eines Users sind davon externe unabhängige Dinge. Aber der Anspruch einer OX6-Einrichtung ist der, dass das OX6-System jedem seiner User einen eigenen Mail-Account anbietet. Nun habe ich aber bereits einen separaten IMAP-Server im Netz. Und dort will ich natürlich auch die Default-Accounts des OX6-Systems betreiben! </p>
<p>Wichtig für das erfolgreiche Zusammenspiel des OX-Servers mit unserem <em>separaten</em> IMAP-Server im Netz ist nun, dass der User-Name z.B. des &#8220;oxadmin&#8221;-Users auf dem OX6-Server identisch mit dem Login-Namen des Useraccounts auf dem Linux-IMAP-Server ist - auf Betriebssystemebene wie auf IMAP-Ebene. </p>
<p>Auch das verwendete Passwort muss auf beiden Servern (zunächst) identisch sein ( - wiederum auf Betriebssystemebene wie auf IMAP-Ebene). </p>
<p>Das gilt nicht nur für den &#8220;oxadmin&#8221;-Account sondern auch für alle anderen OX6-User-Accounts, die problemfrei auf ihren jeweiligen Default-IMAP-Account zugreifen sollen. Man sollte also einen eigenen, im Netz  vorhandenen IMAP-Server von vornherein als eine dem OX6-System fest zugeordnete Einheit begreifen.</p>
<p>Das halte ich nebenbei gesagt für einen kleinen Nachteil der OX 6 Grund-Installation. Denn dies setzt vorab eine aufgeräumte Netzwerkumgebung mit &#8220;Single Sign On&#8221;-Charakteristik voraus. Was ja keineswegs verkehrt ist, aber dennoch nicht überall gegeben ist. Das Dumme ist dann, dass der OX6-Anwender bei Problemen mit der Default-Mail-Account-Einrichtung spürbare Schwierigkeiten beim Öffnen seiner OX6-Weboberfläche bekommt. Er erhält dann regelmäßig Fehlermeldungen, die das Abschalten des Email-Moduls der Groupware-Oberfläche ankündigen. Und dann ist man als Admin gefordert. </p>
<p>Ich habe übrigens nicht explizit geprüft, ob die Linux UID-Nummern auf den unterschiedlichen Servern auch identisch sein müssen; ich gleiche die aus anderen Gründen aber sowieso immer ab. Hier hilft natürlich ein zentrales LDAP-System als universales Backend enorm, aber dessen Einrichtung würde hier wirklich zu weit führen.    </p>
<p><strong>Nebenbei: </strong><br />
Man kann durch Eingriffe jenseits der verfügbaren OX6-Verwaltungskommandos auch unterschiedliche Passwörter auf dem IMAP-Server und dem OX6-System verwenden. Dazu muss man das abweichende IMAP-Passwort direkt in die Tabelle &#8220;user_mail_account&#8221; eintragen. Natürlich ist das Passwort verschlüsselt - also ist die spezifische Hash-Methode Crypt in der Tabelle &#8220;user_mail_account&#8221; zu beachten! (In der Tabelle &#8220;users&#8221; wird für das OX6-Passwort dagegen SHA1 als Hashverfahren verwendet). Da mir dabei das von OX6 verwendete Salt zur Crypt-Hash-Generierung nicht bekannt ist, behelfe ich mir hier regelmäßig, indem ich gezielt Dummy-User mit dem von mir gewünschten Mail-Passwort anlege, den erzeugten Hash dann in den zu ändernden User-Record kopiere und danach den Dummy-User mit &#8220;deleteuser&#8221; wieder entferne. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Weitere IMAP-Accounts jenseits des Default-Accounts?</p>
<p>Nach diesen Hinweisen zum Default-Mail-Account eines OX6-Users stellt sich die Frage, wie es um weitere IMAP- oder POP-Accounts bestellt ist und ob man die in der OX6-Web-Oberfläche auch nutzen und die zugehörigen Mailordner einsehen kann.</p>
<p>Ja, das geht natürlich! Jeder User kann später auf beliebige weitere IMAP- oder POP-Accounts auf externen Mail-Servern zugreifen  - selbst dann, wenn es mit dem Default-Account des OX6-Systems Probleme geben sollte. Für das Anlegen von Mail-Accounts gibt es in der OX6-Web-Oberfläche einen entsprechenden Menüpunkt unter </p>
<p style="margin-left:20px;"><strong>&#8220;Einstellungen &gt;&gt; E-Mail &gt;&gt; Accounts&#8221;</strong>. </p>
<p>Nur seinen Default-Account kann der User dort weder löschen noch in seinen Grunddaten ändern. Dies kann nur der Kontext Administrator. Das unterstreicht die besondere Rolle des Default-Mail-Accounts als Teil der OX6-Services. </p>
<p>Beim Anlegen weiterer Accounts kann man die auf dem jeweiligen IMAP-Server gültigen Login-Daten anstandslos verwenden - und die müssen dann natürlich auch nicht identisch mit den Account-Daten auf dem OX-Server sein. Die zusätzlichen Mail-Accounts werden nahtlos in die Struktur der Web-Oberfläche integriert; man kann  auf die entsprechenden Mail-Ordner-Inhalte zugreifen sowie eigene Mails mit spezifischen SMTP-Einstellungen versenden. Siehe hierzu auch die Abbildungen weiter unten. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Anpassen der Einträge auf dem OX6-Server für einen Default-Email-Account auf einem separaten IMAP-Server</p>
<p>Nehmen wir an, der von uns betriebene IMAP-Server habe die IP-Adresse &#8220;192.168.0.10&#8243;. Gehen wir weiter davon aus, dass es auf dem IMAP-Server 192.168.0.10 in unserem Netz einen Account und Postfach für den User &#8220;oxadmin&#8221; gibt. Dieser soll per E-Mail unter der Adresse &#8220;oxadmin@mydomain.de&#8221; erreichbar sei. Dann können wir unseren OX6 &#8220;oxadmin&#8221;-Account für den Kontext 1 wie folgt abändern, damit er mit diesem Postfach verbunden wird: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; /opt/open-xchange/sbin/changeuser &nbsp;&minus;A oxadmin &nbsp;&minus;P MY_OX_CONTEXT_ADMIN_PWD  &nbsp;&minus;u oxadmin  &nbsp;&minus;e oxadmin@mydomain.de &nbsp;&minus;&minus;imaplogin oxadmin &nbsp;&minus;&minus;imapserver 192.168.0.10 &nbsp;&minus;&minus;smtpserver 192.168.0.10</p>
<p>Man beachte, dass wir uns hier bzgl. der Authorisierung auf den &#8220;Kontext Administrator&#8221; und nicht auf den OX6-Admin-Master &#8220;oxadminmaster&#8221; beziehen !!! Innerhalb eines Kontextes ist es - wie gesagt - der Kontext Administrator, der die Useraccounts ändert - auch seinen eigenen! Wir überprüfen das Ergebnis der Maildatenänderung wieder durch einen Blick in die Datenbank.  </p>
<p><strong>Hinweis: Der Zugriff auf den Default-Email-Account per OX6-GUI muss für Kontext Administratoren explizit freigeben werden !</strong></p>
<p style="margin-left:20px;">Theoretisch könnten wir uns als User &#8220;oxadmin&#8221; nun über einen Browser bereits auf unserem OX6-Server einloggen. Das würde aber immer noch zu Fehlermeldungen führen, denn aus Sicherheitsgründen ist der Zugriff der Kontextadministratoren auf ihre IMAP-Default-Postfächer per OX6-Browser-Oberfläche defaultmäßig abgeschaltet. Diesen Umstand kann man aber durch Änderung eines Eintrags in den Konfigurationsdateien unter &#8220;/opt/open-xchange&#8221; ändern:  </p>
<p style="margin-left:20px;">In der Datei &#8220;/opt/open-xchange/etc/groupware/mail.properties&#8221; muss man dazu den Wert des Parameters &#8220;com.openexchange.mail.adminMailLoginEnabled=true&#8221; auf true statt false setzen.</p>
<p style="margin-left:20px;">Man sollte das Flag in der Konfigurationsdatei wirklich kennen. Sonst wundert man sich - wie ich - evtl. stundenlang, warum die E-Mail-Anzeige in der OX6-Oberfläche für alle normalen User auf Anhieb funktioniert, nur nicht für den Kontext-Administrator - und das obwohl man über Kmail auf den E-Mail-Account des Kontextadmin ebenfalls problemlos zugreifen kann. Noch verwirrender wird die Angelegenheit, wenn man für den &#8220;oxadmin&#8221; über den Default-Mailaccount hinaus testweise weitere IMAP-Mailaccounts anlegt und sich mit denen auch sofort verbinden kann! Die Ursache für evtl. Probleme mit dem Default-Mail-Account des Kontext-Administrators liegt nur in besagtem Konfigurations-Flag!</p>
<p style="margin-bottom:0px;"><strong>Nebenbei: </strong></p>
<p style="margin-left:20px; margin-top:0px;">Als Admin (root) des OX 6 Servers wird man sich neben dem Zugang zu seinem ureigenen Mail-Account ggf. auch einen Zugang zu dem &#8220;oxadmin&#8221;-IMAP-Account z.B. unter Kontact/Kmail/Akonadi anlegen, falls man die Groupware-Verwaltung nicht deligieren kann. Hierbei sollte man wie immer natürlich wegen des serverseitigen Abonnements von weiteren Ordnern als den Account-Standardordnern des IMAP-Servers aufpassen. Man will ja als Admin nicht alle möglichen Ordner des IMAP-Servers doppelt und dreifach synchronisiert bekommen. </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Anlegen eines ersten normalen Users im Kontext 1</p>
<p>Wir legen nun einen ersten &#8220;normalen&#8221; User im Kontext 1 an. Dieser User muss natürlich bereits einen passenden E-Mail-Account auf dem IMAP-Server besitzen - mit auf beiden Servern gleicher UID und Passwort. Das Passwort heiße USER_PWD. Auf meinem Cyrus-Server sind die IMAP-User-Namen identisch mit den Linux-User-Namen - unser erster User habe den Login-Namen &#8220;rlu&#8221; (Ralf Lustig). Sein Mailaccount sei &#8220;rlu@mydomain.de&#8221;.      </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp;  /opt/open-xchange/sbin/createuser c 1  &nbsp;&minus;A oxadmin  &nbsp;&minus;P MY_OX_CONTEXT_ADMIN_PWD   &nbsp;&minus;u rlu  &nbsp;&minus;d &#8220;RLU&#8221;  &nbsp;&minus;g Ralf  &nbsp;&minus;s Lustig  &nbsp;&minus;p USER_PWD   &nbsp;&minus;e rlu@mydomain.de  &nbsp;&minus;&minus;imaplogin rlu  &nbsp;&minus;&minus;imapserver 192.168.0.10  &nbsp;&minus;&minus;smtpserver 192.168.0.10</p>
<p>Änderungen an diesen Daten führt man im nachinein wieder mit Hilfe des Scripts <strong>&#8220;changeuser&#8221;</strong> durch, wie wir das bereits weiter oben für den &#8220;oxadmin&#8221; vorgeführt haben. Will man dem User z.B. den Zugriff auf das Adressbuch des OX6-Systems gestatten ( in dem die User des OX6-Systems aufgeführt sind), so erreicht man dies durch :  </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># &nbsp; /opt/open-xchange/sbin/changeuser   &nbsp;&minus;c 1  &nbsp;&minus;A oxadmin  &nbsp;&minus;P MY_OX_CONTEXT_ADMIN_PWD   &nbsp;&minus;u rlu   &nbsp;&minus;&minus;access-global-address-book-disabled true</p>
<p>Spätestens jetzt sollte man sich als Admin für weitere Optionen und Einstellungen mit dem Dokument OX6-Manual &#8220;OX6-Provisioning.pdf&#8221;<br />
<a href="http://linux-blog.anracom.com/category/open-xchange/ox6/(http://software.open-xchange.com/OX6/doc/OX6-Provisioning.pdf">http://linux-blog.anracom.com/category/open-xchange/ox6/(http://software.open-xchange.com/OX6/doc/OX6-Provisioning.pdf</a>]<br />
vertraut machen.  </p>
<p style="font-size:16px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Login in die Web-Oberfläche des OX6-Servers</p>
<p>Hat man den OX6-Server wie im ersten Teil dieser Serie beschrieben angelegt, so wäre er jetzt im eigenen Netz unter der Adresse &#8220;http://oxs3&#8243; erreichbar. Wir probieren dies zum Abschluss unserer Anstrenugungen nun abschließend für den User &#8220;oxadmin&#8221; aus. </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/11/ox_login_600.png' alt='OX6 Login-Maske' /></p>
<p>Danach erhalten wir - wenn wir alles richtig gemacht haben - die aufgeräumte Web-Anwender-Oberfläche für das OX6-System: </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/11/ox6_600.png' alt='OX6 Benutzer Oberflaeche' /></p>
<p>Man erkennt hier - etwas mühsam - dass neben dem geöffneten Default-Email-Account noch ein zweiter IMAP-Account auf einem IMAP-Server &#8220;oxs2&#8243; eingerichtet worden ist. Man kann einen solchen Account einrichten, indem man auf das Zahnradsysmbol in der Icon-Leiste oben links klickt. Man erreicht dann das Menü &#8220;Einstellungen&#8221; und seine Unterpunkte. Hiermit sollte man sich auch als Admin vertraut machen. </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/11/ox6_einstellungen.png' alt='ox6 Menue Einstellungen' /></p>
<p>Die Einstellung eines zusätzlichen Email-Accounts erfolgt dann über den Menüpunkt  <strong>&#8220;Einstellungen &gt;&gt; E-Mail &gt;&gt; Accounts&#8221;</strong>: </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/11/ox6_email_account_600.png' alt='Ox6 zusaetzlicher Mail Account' /></p>
<p>Nach diesem ersten Erfolg wünsche ich viel Spass beim Einrichten weiterer User und beim Vertrautmachen mit den Möglichkeiten der OX6 GUI! Man lese hierzu auch das User-Manual</p>
<p><a href="http://software.open-xchange.com/OX6/doc/OX6-User-Guide-German.pdf">http://software.open-xchange.com/OX6/doc/OX6-User-Guide-German.pdf</a></p>
<p>Im nächsten Beitrag zum OX6 sehen wir uns dann den Zugriff auf den OX6-Server von KDE Kontact aus an.   </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/11/05/kontact-47-und-ox-6-unter-opensuse-114-teil-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kann man KDE professionell nutzen ?</title>
		<link>http://linux-blog.anracom.com/2011/10/29/kann-man-kde-professionell-nutzen/</link>
		<comments>http://linux-blog.anracom.com/2011/10/29/kann-man-kde-professionell-nutzen/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 16:41:50 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[KDE]]></category>

		<category><![CDATA[Erfahrungsberichte]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/10/29/kann-man-kde-professionell-nutzen/</guid>
		<description><![CDATA[Kann man ein aktuell gehaltenes KDE als professionelle Arbeitsumgebung einsetzen? Diese Frage stelle ich mir vor allem seit der Einführung von KDE 4 immer wieder. 
Meine Antwort: 
Ja, schon - wenn man denn viel Zeit zum Testen und Spass am Basteln hat - und man immer eine Rückversicherung in Form älterer KDE-Versionen auf anderen Linuxinstallationen [...]]]></description>
			<content:encoded><![CDATA[<p>Kann man ein aktuell gehaltenes KDE als professionelle Arbeitsumgebung einsetzen? Diese Frage stelle ich mir vor allem seit der Einführung von KDE 4 immer wieder. </p>
<p>Meine Antwort: </p>
<p style="margin-left:20px;">Ja, schon - wenn man denn viel Zeit zum Testen und Spass am Basteln hat - und man immer eine Rückversicherung in Form älterer KDE-Versionen auf anderen Linuxinstallationen im Arbeitsumfeld vorrätig hält.</p>
<p>Ich möchte in diesem Beitrag auf ein aktuelles Beispiel eingehen - nämlich Veränderungen an KJots. An diesem Beispiel kann man, glaube ich, sehr deutlich festmachen, wo die Probleme liegen. </p>
<p>Zuvor aber ein kleiner Exkurs zu einer der wichtigsten Voraussetzungen für einen professionell einsetzbaren Desktop:   </p>
<p style="font-size:16px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Exkurs: Stabilität der Desktop-Umgebung und ihrer Standard-Anwendungen - gibt es das unter einem sich rasend schnell entwickelnden KDE?</p>
<p>Die obige Antwort deutet das Nein fast schon an. Dann wäre der professionelle Einsatz eines KDE4-Desktops aber wirklich ein Problem. Denn in einer professionellen Arbeitsumgebung gibt es wenig oder gar keine Zeit für Basteleien. </p>
<p>Nun könnte man sagen, dass sich Fehler und zugehörige Basteleien durch eine konservative Upgrade-Politik für den Desktop vermeiden ließen. Damit ist gemeint, dass man halt nur Releases einführt, die man als durch und durch stabil verifiziert hat. </p>
<p>Aus meiner Erfahrung muss ich aber leider sagen: Das kann man bei der enormen Frequenz an Änderungen und der Vielfalt an Applikationen als Administrator nicht wirklich durchhalten. Soviel testen und zurechtbiegen kann man gar nicht - das ist bei dem Umfang und der Vielzahl allein an KDE-Applikationen und der Wechselwirkung mit vielen anderen Open Source Applikationen (Browser, Office-Pakete, etc.) viel zu zeit- und personalaufwändig. Zudem gleicht das Fehlerverhalten unter KDE eher einer Hydra - man muss zum Beleg dieser These nur mal regelmäßig in die KDE-Bugliste reinschauen. Interessant wäre in diesem Zusammenhang eine Statistik von Regressionsfehlern &#8230;  </p>
<p>Fehler gibt es in der IT immer wieder. An was mache ich die Frage nach dem professionellen Einsatz also fest? </p>
<p>Letztlich an vielen Beispielen, bei denen &#8220;Verbesserungen&#8221; der Desktopbasis oder aber bestimmter Applikationen immer wieder zu Defiziten im Vergleich zum bisherigen Leistungsumfang des KDE-Desktops oder bestimmter Applikationen führten. </p>
<p>Es geht also eigentlich nicht um &#8220;Fehler&#8221; sondern um immer wieder auftretende Probleme in Bezug auf die Funktionalität des Desktops oder seiner Applikationen. Solche Probleme können ja auch durch andere Faktoren als durch echte Programm-Fehler induziert sein - z.B. technischen Innovationsdrang, der zum Einsatz neuer zentraler Komponenten führt, die langfristig echte Vorteile versprechen, aber kurzfristig ganze Applikationen an den Rand der Unbrauchbarkeit führen können, weil die Anpassung zu komplex ist. Als Beispiel verweise ich auf die Akonadi-Einführung als zentrales Element der KDE-Umgebung &#8230;.   </p>
<p>Leider und oft genug bedeuten &#8220;Modernisierungen&#8221; deshalb für den Anwender plötzlich (mit einem Releasewechsel) auftretende Einschränkungen der Funktionalität und damit der täglichen Arbeit. In einer professionellen Arbeitsumgebung muss man sich jedoch auf die Stabilität seiner Tools verlassen können. </p>
<p>Liebe KDE-Entwickler und/oder Distributoren: </p>
<p>Stabilität bedeutet wesentlich mehr als keine Fehler im Code-Ablauf. Stabilität bedeutet u.a. auch, dass ich mich als Anwender in der täglichen Arbeit auf ein Basis-Set an Applikationen und deren Funktionalitäten verlassen können muss. Das schließt Innovation und Modernisierung nicht aus. Aber es schließt u.a. aus, dass wichtige Funktionalitäten plötzlich ersatzlos verschwinden. Sprich:</p>
<p style="margin-left:20px;">Führe substanziell geänderte Applikationen erst dann in ein Release ein, wenn neben der Fehlerfreiheit auch der alte Funktionsumfang der Applikationen sichergestellt ist oder es einen adäquaten Ersatz gibt.</p>
<p>Nun ist aber eine wiederkehrende Standardsituation bei KDE-Updates folgende:</p>
<p>Release 4.x.y weist endlich einen Fortschritt oder eine  Fehlerbehebung in der Applikation A auf, auf die man schon lange gewartet hat. Mit dem gleichen Release wurden aber andere Applikationen B oder der Desktop selbst so stark modifiziert, dass sich die angeblichen &#8220;Verbesserungen oder Modernisierungen&#8221; dort zunächst eher als substanzielle &#8220;Verschlechterungen&#8221; erweisen.   </p>
<p>Ein kleines Beispiel aus der jüngeren Vergangenheit von Kmail: </p>
<p>Ab einem bestimmten Qt-Upgrade war es über 1,5 Jahre hinweg nicht mehr möglich, unter aktuellen Kmail-Versionen ein &#8220;Drag und Drop&#8221; von Mails in Richtung Folderhierarchie so durchzuführen, dass sich die Sub-Folderhierarchie beim Überfahren eines Mailordners mit der Maus automatisch öffnete. Alle Umwege, die man als User nutzen konnte, waren unpraktisch und kosteten in der täglichen Arbeit erheblich Zeit. Dabei ging das alles schon mal ganz wunderbar unter KDE 3.x und den ersten KDE 4-Versionen. Unter KDE 4.7 ist dieses Problem dann endlich behoben worden. </p>
<p>Nun lässt sich dafür aber die Reihenfolge von Mailordnern in der Folderhierarchie nicht mehr einstellen. Man hat also in einem Release endlich eine funktionale Einschränkung beseitigt - aber über die Hintertür an anderer Stelle eine neue Funktionalitätseinschränkung eingeführt. Das neu Problem wird nun möglicherweise zur Version KDE 4.7.4 behoben. Frage: Was geht dann nicht mehr ? Und das war nur die Situation innerhalb einer Applikation. </p>
<p>Noch viel öfter tritt der Fall der Verbesserung an einer Stelle und der <strong>gleichzeitigen</strong> Verschlimmbesserung oder gar Funktionalitätsverlust an einer anderen Stelle auf, wenn man sich KDE applikationsübergreifend von Release zu Release ansieht. </p>
<p>Was sollst du als Admin mit dieser Situation vernünftig umgehen? Eine Umfrage unter den Usern durchführen, ob sie lieber den Teufel in Applikation A oder Beelzebub in Applikation B wollen? Oder eben unter erheblichem Testaufwand auf den eher immer unwahrscheinlicheren Zustand warten, dass mal alle wichtigen Applikationen des Desktops gleichzeitig hinreichend gut funktionieren? Oder sich gleich eine eigene Desktopdistribution zusammencompilieren?             </p>
<p>Man versucht halt sein Bestes -  bastelt, so gut es geht - und schließt auch als User manchmal erhebliche Kompromisse.  </p>
<p>Eine Schlussfolgerung wäre : </p>
<p style="margin-left:20px;">Die Planung für KDE-Änderungen oder KDE-Applikationsänderungen muss viel stärker user- und funktions-orientiert erfolgen als bisher und nicht allein technik-orientiert. Und: Es muss eine Qualitätssicherungsinstanz eingeführt (und bezahlt) werden, die die Autorität hat, manche Verschlimmbesserung aus Releases trotz allem berechtigten Innovationsdruck der Entwickler schlicht und einfach fern zu halten. </p>
<p>Aber wem soll man das in einer &#8220;Community&#8221;, in der der Spaß am Experimentieren und der Innovation der stärkste Motivationsfaktor ist, als Aufgabe mit auf den Weg geben? Müssen die Distributoren hier besser werden? Bei der Effizienzoptimierung, die auch dort unter Kostendruck betrieben wird? </p>
<p>Ich weiss es nicht - am besten wäre aus meiner Sicht eine von der Community selbst organisierte und anwender- und nicht entwickler-dominierte Qualitätssicherung und Release-Politik. Wahrscheinlich gibt es so was schon - ich kenne mich da ehrlich gesagt viel zu wenig aus &#8230;.. ich kann nur sagen, es funktioniert irgendwie nicht hinreichend &#8230;. man muss in diesem Bereich vielleicht ein paar Aspekte von Open Source neu überdenken - besser die Offenheit und den bisherigen Innovations- und Qualitätsicherungsprozess neu überdenken und um ein paar Komponenten ergänzen. </p>
<p>Die Distributoren haben ja versucht, eine Qualitätsverbesserung über die kostenpflichtigen &#8220;Enterprise Desktops&#8221; zu erreichen. Ich hatte eine solche Desktopversion mal ein Jahr von Suse - es bringt ehrlich gesagt nicht viel. </p>
<p>Und es erscheint mir eher eine grundsätzliche Frage zu sein: </p>
<p>Soll oder muss die &#8220;Qualität&#8221; für den professionellen Einsatz eines Open Source Desktops erst durch kostenpflichtige und z.T. intransparente Leistungen von Distributoren gewährleistet werden? Ist das nicht vielleicht die falsche Stelle in der &#8220;Produktionskette&#8221;? Das würde ja letztlich eine Drei-Klassen-Gesellschaft&#8221; an Anwendern bedeuten: </p>
<ul>
<li>die Kaste an superfitten Freaks, die sich in jeder Situation selbst zu helfen wissen. </li>
<li>Otto-Normal-Anwender, der gerne von Microsoft, Apple, etc. unabhängig werden möchte, dabei aber leider zum laufenden Beta-Tester mutiert, wenn er denn nicht irgendwann entnervt aufgibt?
</li>
<li>Den Besserverdienenden oder Unternehmen, die sich die Gebühren für einen Enterprise-Desktop leisten können?</li>
</ul>
<p>Irgendwie kann es das doch nicht sein! </p>
<p style="font-size:16px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Was gar nicht geht - das aktuelle Beispiel KJots</p>
<p>Ich habe mich vor ca. einem halben Jahr mal intensiv nach einem Tool umgesehen, mit dem ich schnell und einfach Notizen und Einfälle strukturiert und formatiert festhalten und sie danach in &#8220;Büchern&#8221; und &#8220;Kapiteln&#8221; organisieren konnte. Zudem wollte ich die Möglichkeit für einen Backup sowie einen Export in XHTML-Dateien haben. </p>
<p>Nach einigen Tests von etwa 5 Open Source Produkten bin ich bei KJots hängen geblieben. U.a. auch wegen der Integration in Kontact. Besonders gefallen haben mir aber die Möglichkeiten zur Strukturierung in Büchern, die Formatierungsmöglichkeiten und die Exportmöglichkeiten. </p>
<p>Also habe ich angefangen, das Tool in einer kreativen Phase im Juni und Juli dieses Jahres wirklich intensiv zu nutzen. Damals lief bei mir irgendeine KDE 4.5.x-Version. Vorgestern - also nur 3 Monate später - und mit einem KDE 4.7.2 ausgestattet, wollte ich mich mit den Ergebnissen meiner früheren Arbeit, die ich in Form von &#8220;*.book&#8221;-Dateien abgelegt und gesichert hatte, mal wieder befassen. Genauer gesagt: ich brauchte die alten Kjots-Dateien dringend als Ausgangspunt für eine Auftragsarbeit.   </p>
<p>Man muss dazu sagen, dass ich mir wegen vieler Änderungen auf dem Weg von KDE 4.6 zu KDE 4.7 und der schon gewohnten Probleme mit Akonadi-Ressourcen und Kontakt etliche Teil des Desktops neu aufgebaut hatte. Dabei ging auch die frühere Verzeichnissstruktur (der KDE 4.5-Installation) für KJots unter .kde4 bzw. unter anderen Dateien des Desktops den Weg alles Irdischen. </p>
<p>Na und, denkt der Leser sicher - was solls - daür hattest du ja deine Kjots Dateien ordentlich exportiert und gesichert  - importier sie halt einfach. Tja, dachte ich auch &#8230; .</p>
<p>Nur hat sich halt inzwischen KJots bzgl. der Datenhaltung und -organisation - vielleicht auch aus sehr guten Gründen - neu aufgestellt. Dummerweise haben die Entwickler dabei offenbar nicht die Zeit gefunden, eine geeignete Importfunktionalität für die alten Kjots-Export-Formate bereitzustellen - nicht einmal für das frühere &#8220;native&#8221; &#8220;.book&#8221;-Format.</p>
<p>Nein, nicht nur das - im aktuellen Kjots gibt es gleich gar keine Import-Funktionalität mehr! Siehe </p>
<p><a href="https://bugs.kde.org/show_bug.cgi?id=277378">https://bugs.kde.org/show_bug.cgi?id=277378</a><br />
<a href=" http://forum.kde.org/viewtopic.php?f=22&#038;t=97304"><br />
http://forum.kde.org/viewtopic.php?f=22&#038;t=97304</a><br />
<a href="http://forum.kde.org/viewtopic.php?f=20&#038;t=95898">http://forum.kde.org/viewtopic.php?f=20&#038;t=95898</a><br />
<a href="http://chakra-project.org/bbs/viewtopic.php?pid=37139">http://chakra-project.org/bbs/viewtopic.php?pid=37139</a><br />
<a href="http://forums.gentoo.org/viewtopic-t-880151-start-0-postdays-0-postorder-asc-highlight-.html?sid=6e53049575aa553e582f6a2f24bcdd86">http://forums.gentoo.org/viewtopic-t-880151-start-0-postdays-0-postorder-asc-highlight-.html?sid=6e53049575aa553e582f6a2f24bcdd86</a></p>
<p>und weitere mehr &#8230;. </p>
<p>Nun waren die Ergebnisse meiner früheren Arbeit aber wirklich wichtig und Geld wert, und ich brauchte sie dringend. Der erste Ansatz zu einer Problemlösung führte ins Internet - aber dort fand ich im Laufe einer Stunde auch nur arme, ebenfalls ratlose Betroffene und leider keine für mich brauchbare Lösung - zumindest nicht innerhalb eines Zeitraums von einer weiteren Stunde. Dann habe ich - wenig optimistisch - versucht herauszufinden, ob sich nicht eine ältere Version von Kjots installieren lassen würde. Nein ging nicht, die Änderungen an den KDE-Basisbibliotheken auf dem Weg zu KDE 4.7.2 waren einfach zu massiv. Unter Zeitdruck und bei hinreichendem Wert der alten Kjots-Dateien bleibt als nächste Option für einen normalen Benutzer nun nur der Weg zurück zu einer alten KDE-Version.     </p>
<p>Ich konnte glücklicherweise einen anderen Ausweg wählen: </p>
<p>Ich kenne den Entwicklungsverlauf und die Fallen von KDE nun schon so viele Jahre, dass ich weiss, wie gut man daran tut, immer auch ein KDE zur Verfügung zu haben, das mindestens ein halbes Jahr alt ist - entweder auf einem anderen PC/Laptop oder aber - wie bei uns - auf einer virtuellen Maschine. Die konnte ich hochfahren - und dort temporär unter KDE 4.5 im VMware-Fenster eines viel &#8220;moderneren&#8221; KDE 4.7 dann endlich meine alten Kjots-Dateien laden und bearbeiten, die ich vor gerade mal einem Vierteljahr erzeugt hatte - mit einem von mir selbst &#8220;evaluierten&#8221; KDE-Produkt. </p>
<p>Wie ich den bearbeiteten Stand meiner Kjots-Bücher jetzt in die KDE 4.7-Welt bringe, ist dabei nach wie vor unklar. Über eine anderes Produkt, das evtl. mit KJot-Dateien umgehen kann? Mit einem aktuellen &#8220;KBasket&#8221; klappte es jedenfalls nicht. Am einfachsten ist am Ende vielleicht wirklich der Export aller meiner Kjots-Bücher in eine umfassende HTML-Datei mit Hilfe der alten Kjots-Version, danach der Import nach Openoffice sowie das dortige zeitaufwändige Nachbearbeiten. </p>
<p>Und der künftige Verzicht auf Experimente bei wichtigen Dingen eines professionellen Umfeldes mit illustren KDE-Applikationen, auch wenn sie  einen zunächst mit einem brauchbaren Funktionsumfang verführen mögen ??!      </p>
<p>Professionelles Arbeiten? </p>
<p>Offenbar setzt das bei KDE eine Rückversicherung in Form virtueller oder physikalischer Maschinen mit älteren KDE-Versionen voraus, bei denen irgendein Tool oder eine Applikation noch den gewünschten Funktionsumfang hat. </p>
<p>Das alles für den offenbar wahrscheinlichen Fall, dass dieser für das Arbeiten notwendige Funktionsumfang in späteren KDE-Versionen mal wieder nebenbei der heiligen &#8220;Innovation&#8221; oder aber irgendeiner Verschlimmbesserung geopfert wird &#8230;. und man trotzdem upgraden muss, weil das Upgrade an anderer Ecke wirklich Verbesserungen bringt &#8230;.     </p>
<p>Liebe KDE-Entwickler: Bei allem Respekt, den ihr wirklich verdient - das kann es einfach nicht sein! Das geht so nicht! Das ist zumindest Otto-Normalverbraucher nicht zumutbar. </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/10/29/kann-man-kde-professionell-nutzen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Libreoffice 3.4, Scrollbar-Fehler, KDE 4.7</title>
		<link>http://linux-blog.anracom.com/2011/10/21/libreoffice-34-scrollbar-fehler-kde-47-suse-114/</link>
		<comments>http://linux-blog.anracom.com/2011/10/21/libreoffice-34-scrollbar-fehler-kde-47-suse-114/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:35:13 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[LibreOffice, OpenOffice]]></category>

		<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/10/21/libreoffice-34-scrollbar-fehler-kde-47-suse-114/</guid>
		<description><![CDATA[Manchmal gibt es in der Opensource-Welt Fehler, über die man sich aus folgenden  Gründen wirklich ärgern muss: 

Sie brechen nach Wochen halbwegs angenehmen Arbeitens plötzlich aufgrund eines harmlos erscheinenden Updates einer Applikations-Sub-Version über einen herein und machen eine Schlüsselapplikation zumindest teilweise unbrauchbar.
Sie sind spezifisch für eine Linux-Desktop-Variante (hier KDE 4.7.x) und treten unter einer [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal gibt es in der Opensource-Welt Fehler, über die man sich aus folgenden  Gründen wirklich ärgern muss: </p>
<ul>
<li>Sie brechen nach Wochen halbwegs angenehmen Arbeitens plötzlich aufgrund eines harmlos erscheinenden Updates einer Applikations-Sub-Version über einen herein und machen eine Schlüsselapplikation zumindest teilweise unbrauchbar.</li>
<li style="margin-top:10px;">Sie sind spezifisch für eine Linux-Desktop-Variante (hier KDE 4.7.x) und treten unter einer anderen (KDE 4.6, Gnome) nicht auf.</li>
<li style="margin-top:10px;">Die Entwickler und Distributoren haben die verschlimmbesserten Anwendungs-Programme offenbar nicht unter der betroffenen aktuellen Desktop-Versionen getestet.</li>
</ul>
<p>In diese Kategorie fallen z.B. zwei aktuelle Fehler bzgl. der Integration von Libreoffice 3.4.x und KDE 4.7.x - zumindest unter Opensuse 11.4, wohl aber auch unter anderen Distributionen. </p>
<p>Libreoffice ist GTK-basiert. GTK-Applikationen laufen unter KDE vom Erscheinungsbild her leider nicht immer ganz optimal. Aber im vorliegenden Fall half kein Rumdoktern an Einstellungen oder der Austausch von Bibliotheken für die GTK-QT-Integration; es liegt wohl eher ein Bug vor. </p>
<p>Man betrachte folgendes Bild:  </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/10/bug_libreoff_600.png' alt='bug libreoffice 600' /></p>
<p>Man erkennt einerseits eine viel zu große ungeglättete Schriftart, die zur Beschriftung der Lineale  herangezogen wird. Andererseits - und das ist schlimmer - liegt ein Teil der Dokumentdarstellung über dem horizontalen Scrollbar, der dadurch letztlich unbrauchbar wird. </p>
<p>Bzgl. der Linealbeschriftung gilt, dass offenbar nicht die KDE-Schriften gezogen werden, obwohl in der entsprechenden LibreOffice-Optionen-Seite </p>
<p><em>&#8220;Extras > Optionen > LibreOffice > Ansicht&#8221;</em> </p>
<p>der Punkt </p>
<p><em>&#8220;Systemschriftart für die Benutzeroberfläche wählen&#8221;</em> </p>
<p>aktiviert  ist. Statt dessen wird auf eine Schrift zurückgegriffen, die auf dem Linuxdesktop nicht unterstützt ist. Zumindest auf meinem nicht - und da sind wirklich viele Schriften installiert &#8230;  </p>
<p>Beim horizontalen Scrollbar klappt möglicherweise die Integration der gewählten GTK-Styles unter KDE 4.7 in Libreoffice nicht, obwohl ein ansprechender Style unter KDE4&#8217;s <em>&#8220;Systemeinstellungen > GTK-Stile und Schriftarten&#8221;</em> ausgewählt wurde - und bei anderen GTK-basierten Anwendungen auch gezogen wird. Oder es liegt halt ein anderer handfester Bug vor.  </p>
<p>Ein Test unter Gnome und KDE 4.6 zeigt im Gegensatz zu KDE 4.7 interessanterweise eine einwandfreie Darstellung der Libreoffice-Oberfläche. </p>
<p style="font-weight:bold; font-size:14px; margin-top:20px; margin-bottom:10px;">Workaround</p>
<p>Als Sündenbock entpuppt sich nach ein wenig Rumspielen schließlich das RPM-Paket <strong>&#8220;libreoffice-kde4&#8243;</strong>. Ein Workaround besteht entsprechend darin, dieses Paket durch <strong>&#8220;libreoffice-gnome&#8221;</strong> zu ersetzen und die Einstellungen für die Gnome-Oberfläche zu erzwingen, obwohl man unter KDE4 arbeitet. </p>
<p>Dies geschieht dadurch, dass man in die Datei &#8220;/usr/bin/soffice&#8221; folgende Zeile einfügt:       </p>
<p>export OOO_FORCE_DESKTOP=gnome soffice</p>
<p>Danach kann man mit Libreoffice 4.4.x unter KDE 4.7.x wieder arbeiten. Sogar die KDE-Schriftarten werden für die Menüs gezogen, wenn man einen kompletten Neustart der KDE-Oberfläche vornimmt.  </p>
<p>Dieser Umweg ist nicht auf meinem Mist gewachsen - gefunden habe ich den Vorschlag nach einer etwas mühsamen Suche im Internet unter  </p>
<p><a href="https://bbs.archlinux.org/viewtopic.php?pid=971669">https://bbs.archlinux.org/viewtopic.php?pid=971669</a></p>
<p>Ich dachte, ich verweise an dieser Stelle mal auf diesen Workaround, denn in vielen  Internet-Beiträgen zum Scrollbar-Problem gehen die verzweifelten Anwender entweder auf eine ältere Libreoffice Version oder gar auf eine ältere KDE-Version zurück. Das ist unnötig. Aber die Verzweiflung der Anwender verstehe ich gut, denn es handelt sich bei KDE 4.7 und Libreoffice 3.4 ja um fundamentale Bausteine eines Opensource-Desktops, die man zum produktiven Arbeiten benötigt.     </p>
<p style="font-weight:bold; font-size:14px; margin-top:20px; margin-bottom:10px;">Mangelnde Qualitätssicherung ?</p>
<p>Es bleibt wieder der ungute Eindruck, dass es vor der Veröffentlichung mancher  &#8220;verbesserter&#8221;, neuer Versionen von Opensource-Programmen an der Qualitätssicherung hapert. Im aktuellen Fall haben sich die Entwickler wohl mehr um Gnome, ältere KDE-Versionen oder gar Windows als Zielplattform gekümmert. Einen Test für ein aktuelles KDE 4.7 kann wohl kaum jemand durchgeführt haben, denn sonst gäbe es nicht so viele Beiträge zu dem Scrollbar-Problem im Netz. </p>
<p>Was wieder mal meine Überzeugung verstärkt, dass der Opensource-Desktop unter Linux auf Dauer nicht zum Erfolg kommen wird, wenn bzgl. der Qualitätssicherung nicht ein deutlich höherer Standard erreicht wird. Das hier geschilderte Beispiel ließe sich ja um viele weitere Fälle aus der KDE-Geschichte ergänzen. Man denke nur an die Probleme bei der Einführung von Akonadi oder bestimmte Bugs in Kontact.  </p>
<p>Ich meine, dass eine bessere Form der Qualitätssicherung wirklich notwendig ist, bevor laufend Verschlimmbesserungen von Opensoure-Programmen ihren Weg in die Repositories der Distributoren finden. Irgendwie scheint mir diesbezüglich ein wichtiges Glied zwischen der Entwicklungstätigkeit der Community und der Publikation der mit sehr hoher Frequenz entstehenden Opensource-Werke in den Repositories der Distributionen zu fehlen.  </p>
<p>Hinzu kommt natürlich auch eine für meinen Geschmack zu hohe Frequenz, mit der regelmäßig an fundamentalen Bausteinen der Desktops selbst - speziell von KDE - gerüttelt wird. Der Desktop wird so möglicherweise zu einer unberechenbaren Größe für die Entwickler von Anwendungen. Das hatte ja zuletzt auch Miguel de Icaza zu Recht im Linux-Magazin kritisiert. Vielleicht ist der obige Fall ja auch ein Beleg für dieses Problem.   </p>
<p>Ein Desktop lebt schließlich nicht allein von intrinsischer Innovation, sondern in gleichem Maße von den Applikationen, die darauf laufen müssen. Und deren Entwickler brauchen Zeit, um sich auf grundlegende Veränderungen der Desktop-Plattform einzustellen &#8230;.</p>
<p>Ein supermoderner Desktop ist nämlich wirklich wenig wert, wenn Applikationen, die vor einem halben Jahr veröffentlicht wurden, nicht mehr auf der neuen Desktopversion laufen.   </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/10/21/libreoffice-34-scrollbar-fehler-kde-47-suse-114/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Opensuse 11.4, samba, apparmor-Problem</title>
		<link>http://linux-blog.anracom.com/2011/08/23/opensuse-114-samba-apparmor-problem/</link>
		<comments>http://linux-blog.anracom.com/2011/08/23/opensuse-114-samba-apparmor-problem/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 10:09:47 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Netzwerk]]></category>

		<category><![CDATA[Erfahrungsberichte]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/08/23/opensuse-114-samba-apparmor-problem/</guid>
		<description><![CDATA[Habe in der letzten Zeit auf meinem Opensuse 11.4 keine Samba CIFS-Shares mehr freigegeben. Heute musste ich das jedoch mal wieder tun. 
Ergebnis: 1,5 Stunden ging erstmal gar gar nichts. Zwar werden die Shares in &#8220;smbtree&#8221; und &#8220;smbclient&#8221; angezeigt, aber ein Versuch, die Inhalte der Share-Verzeichnisse in &#8220;smbclient&#8221; aufzulisten, endete jedesmal mit 
NT_STATUS_ACCESS_DENIED listing \*.
Ebenso [...]]]></description>
			<content:encoded><![CDATA[<p>Habe in der letzten Zeit auf meinem Opensuse 11.4 keine Samba CIFS-Shares mehr freigegeben. Heute musste ich das jedoch mal wieder tun. </p>
<p>Ergebnis: 1,5 Stunden ging erstmal gar gar nichts. Zwar werden die Shares in &#8220;smbtree&#8221; und &#8220;smbclient&#8221; angezeigt, aber ein Versuch, die Inhalte der Share-Verzeichnisse in &#8220;smbclient&#8221; aufzulisten, endete jedesmal mit </p>
<p>NT_STATUS_ACCESS_DENIED listing \*.</p>
<p>Ebenso schlug das Browsing in Dolphin oder von anderen Rechnern aus fehl.</p>
<p>Natürlich habe ich dann meine Konfiguration geprüft, Passwörter und Rechte gecheckt, meine Zugriffsdaten mehrfach über &#8220;smbpasswd&#8221; und &#8220;pdbedit&#8221; upgedated, die Fehlerfreiheit von smb.conf mit &#8220;testparm&#8221; gecheckt und Zeit in das Studium von Samba-logs investiert. Mein Problem war auch nicht das, dass &#8220;/etc/init.d/smb&#8221; oder &#8220;/etc/init.d/nmbd&#8221; nicht gelaufen wären, wie das lt. Internet bei anderen Opensuse 11.4-Usern schon vorgekommen sein muss. Siehe etwa: </p>
<p><a href="http://www.hardwarecrash.de/index.php/faq/software/linux/opensuse/215-opensuse-114-nmbd-startet-nicht">http://www.hardwarecrash.de/index.php/faq/software/linux/opensuse/215-opensuse-114-nmbd-startet-nicht</a><br />
<a href="http://forums.opensuse.org/english/get-technical-help-here/network-internet/456049-11-4-samba-wont-run.html">http://forums.opensuse.org/english/get-technical-help-here/network-internet/456049-11-4-samba-wont-run.html</a><br />
<a href="http://www.linux-club.de/viewtopic.php?f=6&#038;t=112904">http://www.linux-club.de/viewtopic.php?f=6&#038;t=112904</a><br />
<a href="http://forums.opensuse.org/english/get-technical-help-here/network-internet/455677-mount-cifs-issue-opensuse-11-4-a-2.html">http://forums.opensuse.org/english/get-technical-help-here/network-internet/455677-mount-cifs-issue-opensuse-11-4-a-2.html</a></p>
<p>Mein Opensuse 11.4 ist zudem auf dem neuesten Stand. Ich war wirklich ratlos. </p>
<p>Dann habe ich meine SMB-Konfiguration auf einem anderen, nicht vollständig aktualisierten Opensuse 11.4-System nachgestellt. Dort lief die Sache anstandslos. Also mussten irgendwelche Paket-Updates bei mir etwas &#8220;verschlimmbessert&#8221; haben. </p>
<p>Über weitere Hinweise im Internet bin ich dann auf <strong>Apparmor als Ursache vieler Samba-Probleme</strong> unter Opensuse 11.4 gestoßen. Ich habe dann zunächst geprüft, ob Apparmor bei mir über das Kontrollpanel unter Yast deaktiviert war. Ja, das war es. Dennoch lag der Fehler im Apparmor-Bereich und zwar in irgendeiner perversen Weise, die man als Endverbraucher nicht mehr verstehen kann und will : </p>
<p>Es half nämlich auch nichts, SMB-bezogene Profile aus Apparmor per Yast zu löschen. Einzig und allein </p>
<ul>
<li>ein (zweifaches) Anwenden des &#8220;Assistenten zum Aktualisieren von Profilen&#8221; unter Yast im Bereich Apparmor</li>
<li>und ein &#8220;Zulassen&#8221; bei den hochkommenden SMB-relatierten Profilfragen </li>
</ul>
<p>brachte die Lösung.    </p>
<p>Liebe Leute von Novell: </p>
<p>Solche Bugs sind so dermaßen kontraproduktiv und so dermaßen desillusionierend, das man nur noch müde abwinken kann. (Ich habe meiner Frau versprochen, mich über sowas nicht mehr aufzuregen.) So gewinnt man keine Freunde für Linux in Form der Opensuse Distribution und schon gar nicht für Apparmor. Es führt eher zu dem Reflex, dieses Tool gar nicht mehr zu installieren. </p>
<p>Es trägt übrigens wenig zu meiner Beruhigung bei, dass es unter Fedora mit SELinux mal ein ähnliches Problem gab. Siehe etwa die Diskussion und nachfolgenden Beiträge zu <a href="http://lists.samba.org/archive/samba/2007-April/130900.html">http://lists.samba.org/archive/samba/2007-April/130900.html<br />
</a></p>
<p>Ursache für diese Misere ist aus meiner Sicht mal wieder das aktuelle Kernproblem von Opensource: die mangelnde Qualitätssicherung. Man ist als User - und vor allem als Enduser - halt doch immer Beta-Tester. Nun halt mal in puncto Sicherheit. Na toll &#8230;..  </p>
<p><strong>Links:</strong><br />
<a href="http://www.linux-club.de/viewtopic.php?f=6&#038;t=113044">http://www.linux-club.de/viewtopic.php?f=6&#038;t=113044</a><br />
<a href="http://forums.opensuse.org/deutsch-german/hilfe-und-helfen/installation-administration/458037-opensuse-11-4-samba-probleme-wegen-apparmor.html">http://forums.opensuse.org/deutsch-german/hilfe-und-helfen/installation-administration/458037-opensuse-11-4-samba-probleme-wegen-apparmor.html</a><br />
<a href="http://web.archiveorange.com/archive/v/TDuKzixdvQtYbQQ6CLRH">http://web.archiveorange.com/archive/v/TDuKzixdvQtYbQQ6CLRH</a><br />
<a href="http://www.linux-club.de/viewtopic.php?f=6&#038;t=113221">http://www.linux-club.de/viewtopic.php?f=6&#038;t=113221</a></p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/08/23/opensuse-114-samba-apparmor-problem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kontact 4.7 und OX 6 unter Opensuse 11.4 - Teil I</title>
		<link>http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/</link>
		<comments>http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 17:14:59 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[Open-Xchange 6]]></category>

		<category><![CDATA[Erfahrungsberichte]]></category>

		<category><![CDATA[Open-Xchange]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/</guid>
		<description><![CDATA[Einleitung
KDE 4.7 ist da. Damit erfolgte auch im KDE Factory Repository von Opensuse der Umstieg auf das akonadi-abhängige Kmail 2 - jetzt unter der Bzeichnung Kmail 4.7. Das aktuelle Gespann &#8220;Kontact 4.7/Kmail 4.7/Akonadi&#8221; hat aber ein Manko: 
Es bietet keine Konnektoren mehr zum OpenXchange Server der Version 5 an. Siehe KDE-Bug https://bugs.kde.org/show_bug.cgi?id=258711.
Natürlich funktioniert der Zugriff [...]]]></description>
			<content:encoded><![CDATA[<p style="font-size:18px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Einleitung</p>
<p>KDE 4.7 ist da. Damit erfolgte auch im KDE Factory Repository von Opensuse der Umstieg auf das akonadi-abhängige Kmail 2 - jetzt unter der Bzeichnung Kmail 4.7. Das aktuelle Gespann &#8220;Kontact 4.7/Kmail 4.7/Akonadi&#8221; hat aber ein Manko: </p>
<p style="margin-left:20px;">Es bietet keine Konnektoren mehr zum OpenXchange Server der Version 5 an. Siehe KDE-Bug <a href="https://bugs.kde.org/show_bug.cgi?id=258711">https://bugs.kde.org/show_bug.cgi?id=258711</a>.</p>
<p>Natürlich funktioniert der Zugriff von Kontact/Kmail 4.7 auf einen externen IMAP-Server - aber der ist eben unabhängig von spezifischen OX-Diensten wie der Pflege von Kontakt- und Adressdaten, von Kalender-Daten oder aber von Dokumenten. </p>
<p>D.h., die neueste KDE PIM Suite lässt sich z.Z. nur mehr mit dem Open-Xchange Server in der Version 6 (OX 6) betreiben. Für mich ist somit der Tag gekommen, an dem ich ernsthaft den schon seit längerem geplanten Umstieg von OX 5 auf OX 6 vorbereiten muss. </p>
<p>Kennt man Open-Xchange 6 gar nicht, so ist ein vernünftiger erster Schritt sicher der, den OX 6 zunächst einmal auf einem Testsystem auszuprobieren. In einem fehlertoleranten Umfeld mit (sehr) wenigen Usern reicht die <strong>Open-Xchange Community Edition</strong> [OX CE] auf einem Server, den man sich z.B. mit Opensuse 11.4 konfiguriert hat, für eine Testphase vollkommen aus. Bei uns läuft der OX 6 in diesem Sinne gerade testweise auf einem virtuellen, Opensuse 11.4 basierten Server unter XEN. Eine Diskussion der Gründe, warum ich als Basis für den OX-Server nicht unseren SLES 11 nehmen werde, würde hier zu weit führen.      </p>
<p>Nachfolgend beschreibe ich in drei Blog-Beiträgen eine einfache Testinstallation auf einem Opensuse 11.4-System. (Ob dieses dabei XEN-basiert ist, ist bzgl. der OX-Funktionalität irrelevant.) Bei der Beschreibung gehe ich kurz auch auf Fallstricke, die z.B. bzgl. der Anbindung eines externe IMAP-Servers auftreten, ein. </p>
<p>Vor allem will ich aber testen, ob der  KDE/Kontact 4.7 Zugriff auf den OX 6 funktioniert.<br />
Mein Testszenario sieht daher etwa wie folgt aus: </p>
<p><img src='http://linux-blog.anracom.com/__oneclick_uploads/2011/08/migration_ox5_ox6_533.png' alt='OX6 Test' /></p>
<p>D.h., ich nutze einen bereits vorhanden Cyrus-IMAP-Server in unserem Netz. Ist ein solcher nicht vorhanden, kann man sein &#8220;OX 6&#8243;-Versuchssystem aber auch gegen einen externen IMAP-Server im Internet testen, bei dem man ggf. einen E-Mail-Account hat. Der Zugriff auf den OX6-Server soll über 2 Varianten möglich sein: </p>
<ul>
<li>Einerseits möchte ich per Browser auf das OX6-Web-Frontend zugreifen. Dabei soll mir das Frontend nicht nur die Verwaltung von Kalendereinträgen, Tasks, Ressourcen unterstützen, sondern auch die Mails auf dem IMAP-Server anzeigen. </li>
<li style="margin-top:10px">Andererseits wünsche ich mir natürlich den Zugriff auf Kalender-, Task- und Addressbuchfunktionalitäten des OX6 per KDE&#8217;s Kontact. Natürlich will ich per Kmail auch die Mails sehen - aber dass Kmail mit IMAP-Servern umgehen kann, ist bei unserem Test weniger von Belang, weil von Haus aus klar.  </li>
</ul>
<p style="font-size:18px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Zielsetzung Teil I / Ausblick auf Teil II</p>
<p>In diesem ersten Teil wollen wir auf einem Opensuse 11.4-Testsystem zunächst die Grundinstallation eines lokalen OX-Servers [ OX CE] ohne Installation eines IMAP-Servers durchführen. Letzteren setzen wir auf einem separaten Server im Netzwerk voraus. (Die Beschreibung einer Postfix/Imap-Installation würde hier zu weit führen. Erste grundsätzliche Hinweise zum Aufsetzen eines Postfix/Imap-Systems findet man hier &#8220;<a href="http://linux-blog.anracom.com/2009/01/29/kmail-kde-42-postfix-und-cyrus-imap-unter-ox/">http://linux-blog.anracom.com/2009/01/29/kmail-kde-42-postfix-und-cyrus-imap-unter-ox/</a>&#8220;).</p>
<p>Wir führen ferner keine Cluster-Installation mit Lastverteilung durch. Bis auf IMAP laufen alle erforderlichen Services lokal auf dem Testsystem ab.  </p>
<p>Im zweiten Teil legen wir schließlich einen OX-Default-Kontext mit OX-Usern an und greifen über den OX6 auch auf den IMAP-Server zu. Testen werden wir das über die OX-eigene Web-Oberfläche für den Anwender.  Danach - im dritten Beitrag - verbinden wir schließlich unsere Kontact/Kmail 4.7-Clients mit dem OX6- und dem IMAP-Server.  </p>
<p>Zur Klarheit: Es geht um eine &#8220;OX CE&#8221;-Testinstallation, nicht um eine Produktivumgebung und nicht um die kommerziellen OX-Versionen. [ Open-Xchange rät vom Einsatz der nicht supporteten Community Edition in einem produktiven Umfeld ab, obwohl die CE im Kern keine funktionalen Einschränkungen aufweisen soll. Solche Einschränkungen gibt es aber bzgl. von Konnektoren und der Admin GUI. Die Community Edition kann nach meinem Verständnis auch nicht für das kommerzielle Hosting oder Verleihen von OX-Diensten eingesetzt werden. ] </p>
<p style="font-size:18px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Vorbemerkungen / Voraussetzungen der Installation / Referenzinstallationsanleitung für OX 6 unter Opensuse 11.4</p>
<p>Eine &#8220;Single Server&#8221;-Basisinstallation geht wesentlich schneller, als man das von früheren Experimenten mit dem SLOX oder OX5 unter SLES gewohnt sein mag. Im besonderen muss man sich nicht zwingend mit einer Anbindung an einen vorhandenen LDAP-Server. Eine Tomcat-Integration ist auch nicht erforderlich. OX6 ist hier schlanker als OX5. </p>
<p>Grundsätzlich sollte man für eine Testinstallation den entsprechenden Texten im OX Wiki [<a href="http://oxpedia.org/index.php?title=Main_Page_CE#quickinstall">http://oxpedia.org/index.php?title=Main_Page_CE#quickinstall</a>] folgen. Für Opensuse 11.4 und die OX Community Edition hält man sich an die Referenz-Installationsanleitung für Opensuse 11.0:</p>
<p style="margin-left:20px;"><strong>Referenzanleitung zur Installation:</strong> <a href="http://oxpedia.org/wiki/index.php?title=Open-Xchange_Installation_Guide_for_openSUSE_11.0">http://oxpedia.org/wiki/index.php?title=Open-Xchange_Installation_Guide_for_openSUSE_11.0</a></p>
<p>Sie führt mit ein wenig Geduld auch unter Opensuse  11.4 zum Erfolg. Der Text ist aus meiner Sicht knapp, aber ausreichend. Trotz der Komprimiertheit der Anweisungen umfasst der Text immerhin ca. 12 Seiten. Einiges davon sind aber Inhalte von Konfigurationsdateien. Man sollte sich durch den Umfang der Installationsanleitung also nicht abschrecken lassen.     </p>
<p>Eine deutsche Übersetzung findet man hier: <a href=" http://www.pcwelt.de/ratgeber/Mailserver-Open-Xchange-Server-6-installieren-konfigurieren-355910.html"><br />
http://www.pcwelt.de/ratgeber/Mailserver-Open-Xchange-Server-6-installieren-konfigurieren-355910.html</a> und nachfolgende Webseiten.</p>
<p>Weiere Dokumentationen zur Administration und Nutzung des OX6 findet man hier: <a href="http://oxpedia.org/index.php?title=Main_Page_CE#documentation">http://oxpedia.org/index.php?title=Main_Page_CE#documentation</a> </p>
<p>Ich folge weiter unten im wesentlichen genau den Schritten der oben genannten Referenz-Installationsanleitung, werde aber bei einigen Punkten auf Schwierigkeiten eingehen, die auf meinem Test-System auftraten. Die Referenzanleitung sollte man auf jeden Fall elektronisch herunterladen, um Inhalte für Konfigurationsdateien per Copy/Paste übernehmen zu können.   </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Voraussetzungen der Installation</p>
<p>Voraussetzungen der Installation werden hier diskutiert:<br />
<a href="http://www.pcwelt.de/ratgeber/Download-und-Installation-Mailserver-355914.html">http://www.pcwelt.de/ratgeber/Download-und-Installation-Mailserver-355914.html</a></p>
<p>Hier noch ein paar Anmerkungen von meiner Seite:</p>
<ul>
<li style="margin-top:10px;">Erforderl. Skill-Level: Die OX6-Installation ist aus meiner Sicht nichts für Linux-Anfänger. Man sollte schon einige Linux-Administrationskenntnisse haben, sein Opensuse gut kennen und natürlich schon mal einen Apache- und MySQL-Server aufgesetzt haben. Tiefgehende Spezialkenntnisse sind allerdings für eine Testinstallation nicht erforderlich. (Für eine professionelle, dauerhaft produktive Installation im Firmennetz ist natürlich ein breiteres Wissen erforderlich.) </li>
<li style="margin-top:10px;">Natürlich muss auf dem Opensuse 11.4-Testsystem, das den OX 6 beherbergen soll, zuvor ein Apache Web-Server laufen. Für eine schnelle Test-Installation siehe  <a href="http://linux-blog.anracom.com/2010/07/25/lokaler-apache-test-server-fur-php5/">http://linux-blog.anracom.com/2010/07/25/lokaler-apache-test-server-fur-php5/</a> </li>
<li style="margin-top:10px;">Auf dem OX6-Testsystem muss auch eine MySQL-Datenbank installiert sein. PhpMyAdmin zum Verwalten des RDBMS ist ferner von Vorteil, da wir in Teil II bei Bedarf Inhalte der OX6-Datenbank modifzieren werden. Zu einer einfachen MySQL-Testinstallation siehe <a href="http://linux-blog.anracom.com/2010/08/28/lokale-mysql-phpmyadmin-installation/">http://linux-blog.anracom.com/2010/08/28/lokale-mysql-phpmyadmin-installation/</a></li>
<li style="margin-top:10px;">Eine Java Runtime Umgebung (z.B. OpenJDK) muss laufen. Ich selbst habe OpenJDK und die Pakete von Sun installiert. Ich habe noch nicht ausprobiert, ob es reichen würde, OpenJDK einzusetzen. Vermutlich ja (obwohl es dazu bereits eine Fehlermeldung gibt: <a href="https://bugs.open-xchange.com/show_bug.cgi?id=15987">https://bugs.open-xchange.com/show_bug.cgi?id=15987</a>). Zumindest zeigt die Paketverwaltung nach einem &#8220;rpm -q &#8211;requires open-xchange-server | grep java&#8221; an, dass &#8220;java-openjdk&#8221; benötigt wird. </li>
<li style="margin-top:10px;">Die Namensauflösung zum externen IMAP-Server und zum lokalen System muss im hauseigenen Netzwerk funktionieren und änderbar sein. Gründe: Je nach Konfiguration des auf dem Testsystem vorhandenen Apache möchte man ggf. unterschiedliche Services des Web-Servers von Client-Systemen aus unter unterschiedlichen Namen ansprechen. Der OX 6 Dienst entspräche dann nur einer von mehreren virtuellen Web-Domainen. Ferner kann man den IMAP-Server dem OX6 auch über dessen Namen bekanntmachen, um von IP-Adressen unabhängig zu werden. <br />Bei fehlendem DNS-Server muss man die Namensauflösung halt über die &#8220;/etc/hosts&#8221;-Files auf den betroffenen Systemen vornehmen.</li>
<li style="margin-top:10px;">Wir unterlassen in diesem Test - wie oben angekündigt - eine Anbindung an einen LDAP-Server. </li>
<li style="margin-top:10px;">Im Paketmanager unter YAST muss man auf dem Testsystem das Repository <br /><strong>&#8220;http://download.opensuse.org/repositories/server:/OX:/ox6/openSUSE_11.4/&#8221;</strong> <br />auf dem gewohnten opensuse-spezifischen Weg einbinden. </li>
</li>
<li style="margin-top:10px;">Eine Admin GUI sucht man in der OX 6 Community Edition vergeblich. &#8220;Peters OX Server Admin GUI&#8221; (s. http://oxgui.wordpress.com/category/einfuhrung/) klammere ich in diesem Beitrag aus. Ohne eine GUI muss man die User-Verwaltung für die Tests händisch und über Scripts durchführen. Auch das sollte einen nicht abschrecken. </li>
</ul>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Installation der benötigten RPM-Pakete</p>
<p>Ist das OX-Repository &#8220;http://download.opensuse.org/repositories/server:/OX:/ox6/openSUSE_11.4/&#8221; in YASTs Paketmanager vorhanden, installiert man sich vor allen weiteren Schritten die notwendigen OX-Pakete für einen Betrieb auf einem einzigen Server. </p>
<p>Die Pakete sind im obigen Installationsleitfaden in einem umrandeten Kasten (Seite 4 im Abschnitt &#8220;Updating repositories and install packages&#8221; - zypper install mysql \ &#8230;&#8221; ) einzeln angegeben und werden hier aus Platzgründen nicht aufgelistet. </p>
<p>Die Installationsfiles für den OX-Server sowie zugehörige Admin-Skripts landen im Zuge der Paketinstallation dann im Verzeichnis &#8220;/opt/open-xchange&#8221; (mit &#8220;root&#8221; als Owner und ansonsten mit einem gewöhnlichen &#8220;755&#8243;-Rechtekamm).  </p>
<p><strong>Vorsicht und Zurückhaltung bei der Paketinstallation:</strong> </p>
<p>Bitte anfänglich <strong>ausschließlich</strong> nur die Pakete installieren, die in der oben genannten Installationsanleitung angegeben sind. Unter anderem <strong>nicht</strong> das Paket &#8220;open-xchange-admin-plugin-autocontextid&#8221; installieren. Das führt im Rahmen des im &#8220;Installation Guide&#8221; beschriebenen Installationsverlaufs unweigerlich zu Fehlern. </p>
<p>Ich selbst hatte auch mit entsprechenden Fehlern (s. Teil 2, Kontextanlage) zu kämpfen, weil ich mir aus Bequemlichkeit im ersten Anlauf einfach alle OX-Pakete installiert hatte. Das sollte man besser nicht tun. </p>
<p style="font-size:18px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Kontexte und einige wichtige Accounts im Zusammenhang mit OX6</p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Kontexte / Default-Kontext</p>
<p>Open-Xchange 6 kennt sog. <strong>&#8220;Kontexte&#8221;</strong>. Das sind logische Bereiche, die ihre spezifischen User, Gruppen und Ressourcen beinhalten. Daten eines Kontextes sind in anderen Kontexten nicht sichtbar oder zugänglich. Ein Kontext definiert damit für die User auch eine bestimmte Login- und Arbeitsumgebung. </p>
<p>Jeder Kontext hat eine eindeutige &#8220;context id&#8221;, und jedem Kontext ist auch ein eigener Kontext-Administrator zugeordnet, der z.B. die User und Gruppen des Kontextes kreiert und verwaltet. User, die in einem Kontext angelegt werden, erben von ihrem Kontext Rechte bzgl. des Zugangs zu bestimmten Arbeits-Modulen.</p>
<p>Ein Kontext kann nur über den sog. &#8220;oxadminmaster&#8221; (Hauptverwalter des OX 6-Systems) angelegt werden. Dieser definiert auch den zum Kontext zugehörigen Kontext-Administrator, der seinen Kontext verwaltet. Kontexte sind ferner mit sog. Kontext-&#8221;Domainen&#8221; des OX-Servers verbunden. </p>
<p>Im OX-System gibt es genau einen ausgezeichneten <strong>&#8220;Default Context&#8221;</strong>, der während des Installationsvorgangs definiert werden muss. Ein OX-User muss in anderen, normalen Kontexten neben seiner UID auch seine Kontextdomaine angeben, um sich einzuloggen. Beim Default-Kontext genügt für den Login die OX-UID.    </p>
<p>Über Kontexte kann man u.U. Unternehmensbereiche abbilden, die getrennt voneinander operieren und separat verwaltet werden sollen. Pro Kontext können auch Quotas hinsichtlich des Speicherplatzes angelegt werden.      </p>
<p>Genaueres zu &#8220;Kontexten&#8221; findet man im &#8220;OX6 Provisioning Guide&#8221; <a href="(http://software.open-xchange.com/OX6/doc/OX6-Provisioning.pdf">(http://software.open-xchange.com/OX6/doc/OX6-Provisioning.pdf</a>.  (Siehe etwa den Beginn des dortigen Chapter 1.)   </p>
<p>Die Installationsanweisung sieht lediglich die Anlage eines einzigen Kontextes - nämlich des &#8220;Default Context&#8221; - vor. Für unseren Test - und für eine kleine Firma - ist das auch ausreichend. </p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Spezielle Accounts / Admin-Accounts</p>
<p>Folgende (Administrator-) Accounts spielen im Zusammenhang mit dem OX6-Server eine wichtige Rolle:</p>
<ul>
<li><strong>Datenbankuser - &#8220;openexchange&#8221; : </strong> Dieser User erhält die notwendigen Rechte bzgl. der unter MySQL noch anzulegenden &#8220;openxchange&#8221;-Datenbank und ihrer Tabellen. Das wird ein administrativer MySQL-Account. Er erhält standardmäßig umfassende Rechte im RDBMS, u.a. auch das  erforderliche Recht zum Anlegen von Datenbanken ! (Ich habe noch nicht ausprobiert, wie weit sich die Rechte an anderen Stellen beschneiden lassen).</li>
<li style="margin-top:10px;"><strong>Administrator für den OX-Server - &#8220;oxadminmaster&#8221; : </strong>  Dieser User nimmt Grundeinstellungen des Servers vor. U.a. kreiert er die oben erwähnten Kontexte und die Kontext-Admins. </li>
<li style="margin-top:10px;"><strong>Context Administrator - &#8220;oxadmin&#8221; :</strong> Dieser User ist ein Beispiel für einen ersten Kontext-Administrator. Er legt später die ersten Accounts zu dem vom &#8220;oxadminmaster&#8221; kreierten &#8220;Default Context&#8221; an. </li>
<li style="margin-top:10px;"><strong>Linux System-User und System-Gruppe - &#8220;open-xchange&#8221; : </strong> Auf der Linux-Systemebene wird während der Installation ein (System-) User &#8220;open-xchange&#8221; und eine (System-) Gruppe &#8220;open-xchange&#8221; angelegt. Unter der entsprechenden UID/GID erfolgt später der Zugriff auf bestimmte Dateien des OX6-Systems. </li>
</ul>
<p>Die Namen der ersten drei Accounts können eigentlich frei vergeben werden. Wir halten uns hier aber an die Namen, die die Installationsanweisung vorschlägt. </p>
<p>Wir ordnen diesen Accounts Passwörter zu. Für diesen Text verwenden wir folgende Platzhalter, die jeder selbst mit den geeigneten Passwörtern füllen muss: </p>
<ul>
<li>openexchange - Password: MY_OX_MYSQL_PWD</li>
<li style="margin-top:10px">oxadminmaster - Password: MY_OX_MASTER_ADMIN_PWD</li>
<li style="margin-top:10px">oxadmin - Password: MY_OX_CONTEXT_ADMIN_PWD</li>
<li style="margin-top:10px">MySql Root Admin  - Password: MY_MYSQL_ROOT_PWD</li>
</ul>
<p>Für den System-User &#8220;open-xchange&#8221; ist keine Passwortvergabe erforderlich. Er erhält auch keine Login-Shell. </p>
<p style="font-size:14px; font-weight:bold; margin-top:20px; margin-bottom:10px;">Serverbezeichnung</p>
<p>Der zu installierende OX6-Server muss im Rahmen der Installation eine Bezeichnung erhalten. Wir verwenden hierfür im Text den Platzhalter</p>
<p style="margin-left:20px;">MY_OX_SERVER_NAME</p>
<p>den jeder durch seinen eigenen Servernamen ersetzen muss. </p>
<p><strong>Hinweis:</strong> Wir installieren hier nur genau einen Server, der gleichzeitig als Admin-, Application-, Web- und Datenbankserver fungiert. In einer verteilten Hochleistungs-Installation können die Aufgaben auf mehrere Server verteilt werden, die alle zu benennen und in der zentralen Konfigurationsdatenbank des OX-Systems zu registrieren sind. Sehen Sie hierzu die Administrationsdokumentation unter <a href="http://software.open-xchange.com/OX6/doc/OX6-Installation-and-Administration.pdf">http://software.open-xchange.com/OX6/doc/OX6-Installation-and-Administration.pdf</a>.   </p>
<p style="font-size:18px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Die Installation von Open-Xchange 6 unter Opensuse 11.4 im Einzelnen</p>
<p>Vor Beginn der eigentlichen Installationsarbeiten prüfe ich, ob mein MySQL-Servers läuft. Unter Opensuse z.B. mit </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp; rcmysql status</p>
<p>Alternativ mit der Mysql Workbench oder PhpMyAdmin. Zur Not muss der Service gestartet werden:   </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp; rcmysql start</p>
<p>oder auf anderen Systemen mittels &#8220;/etc/init.d/mysql start&#8221;. Für den künftigen Gebrauch sollte man den Dienst per &#8220;Runlevel&#8221;-Verwaltung (z.B. per Runlevel-Editor unter YAST) oder aber manuell in die Startscript-Directories für diejenigen &#8220;Runlevel&#8221; eintragen, auf denen man den Service benötigt. Typischerweise 3 und 5.  </p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 1: Anlegen und Initialisierung der zentralen OX6 Konfigurations-Datenbank und ihrer Tabellen</p>
<p>Nun sollte man sich als root (gemeint ist hier natürlich der Linux &#8220;root&#8221;-Account und nicht der MySQL-&#8221;Root&#8221;-User) auf einem Terminal einloggen und versuchsweise folgendes Kommando absetzen  : </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">#&nbsp; /opt/open-xchange/sbin/initconfigdb &nbsp;&minus;&minus;configdb-pass=MY_OX_MYSQL_PWD  &nbsp;&minus;a</p>
<p>Die &#8220;-a&#8221;-Option dient zur Anlage des administrativen MySQL-Users &#8220;openxchange&#8221;. </p>
<p>Bei mir schlug das Kommando prompt fehl. </p>
<p>Ein Blick in das Script &#8220;initconfigdb&#8221; zeigt, dass zum Anlegen des neuen administrativen Accounts natürlich eine Authorisierung als &#8220;MySQL-Root&#8221;-Administrator erforderlich ist. Man kann das lt. Script durch einen zusätzlichen Übergabeparameter &#8220;&minus;&minus;mysql-root-passwd=&#8230;.&#8221; lösen. Ich selbst habe mir das Leben für die Tests einfacher gemacht und </p>
<ul>
<li>die Lese- und Ausführungsrechte für die Script-Datei &#8220;/opt/open-xchange/sbin/initconfigdb&#8221; auf root begrenzt</li>
<li style="margin-top:10px;"> und in die Script-Datei im Bereich &#8220;#defaults&#8221; das MySQL-Root-Passwort in die zugehörige Zeile explizit eingetragen.
<p>#defaults <br />
&#8230;<br />
MYSQL_ROOT_PASSWD=MY_MYSQL_ROOT_PWD<br />
&#8230;&#8230;.</p>
</li>
</ul>
<p>So ausgestattet lief das Script dann per </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp;&nbsp;  /opt/open-xchange/sbin/initconfigdb &nbsp;&minus;&minus;configdb-pass=MY_OX_MYSQL_PWD &nbsp;&minus;a</p>
<p>anstandslos durch. Ein Blick in die MySQL-Datenbank zeigt denn auch, dass eine Datenbank &#8220;configdb&#8221; und zugehörige Tabellen angelegt wurden. Ferner ist ein MySQL-User &#8220;openxchange&#8221; mit sehr umfassenden Rechten angelegt worden. </p>
<p><strong>Hinweise: </strong></p>
<ul>
<li>Will man ganz sicher gehen, so kann man beim letzten Kommando vermutlich auch ein zusätzliches &#8220;&minus;i&#8221; als Option angeben. Dann wird eine evtl. doch schon vorhandene Datenbank &#8220;configdb&#8221; in dem MySQL-RDBMS zunächst wieder entfernt und dann die Datenbank neu angelegt.</li>
<li style="margin-top:10px">Ferner wird im OX6-System alles mögliche mit Index-Nummern versehen. Bei mir haben mehrere Anläufe im Zusammenhang mit dem initconfigdb-Script vermutlich zu einer &#8220;id=5&#8243; in der Tabelle &#8220;configdb_sequence&#8221; geführt. Diese Sequenz-Nummer fließt dann später in den Namen der Datenbank ein, in der die eigentlichen Bewegungsdaten (Kontexte, user, Kontakte, Kalendereinträge, etc.) hinterlegt werden. Das hat offenbar nicht geschadet - für eine saubere Installation ist aber die erwähnte &#8220;-i&#8221;-Option hilfreich.  </li>
<li style="margin-top:10px">Bzgl. des MySQL-Users &#8220;openxchange&#8221; kann man z.B. mit Hilfe von PhpMyAdmin prophylaktisch noch genauer festlegen, von welchen Systemen aus man einen Zugriff - außer von localhost aus - noch zulassen will.   </li>
<li style="margin-top:10px"><strong>Hinweis:</strong> Nach erfolgreichem Abschluss der Tests entfernt man den Eintrag mit dem MySql-Root-Passwort aus Sicherheitsgründen natürlich wieder aus dem Script ! </li>
</ul>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 2: Setup und Initialisieren von Konfigurationsfiles</p>
<p>Das Initialisieren und Konfigurieren der OX6-Systemkomponenten und der zugehörigen Konfigurationsdateien geschieht nun mit Hilfe eines weiteren Scripts - <strong>&#8220;oxinstaller&#8221;</strong>: </p>
<p style="margin-left:20px; margin-right:100px; background-color:#DDD;">#&nbsp;  /opt/open-xchange/sbin/oxinstaller &nbsp;&minus;&minus;no-license &nbsp;&minus;&minus;servername=MY_OX_SERVER_NAME &nbsp;&minus;&minus;configdb-pass=MY_OX_MYSQL_PWD &nbsp;&minus;&minus;master-pass=MY_OX_MASTER_ADMIN_PWD  &nbsp;&minus;&minus;ajp-bind-port=localhost </p>
<p>Der Platzhalter &#8220;MY_OX_SERVER_NAME&#8221; steht - wie gesagt -  für einen frei vergebbaren Namen des künftigen OX-Servers. Das &#8220;&#8211;no-license&#8221; bezieht sich offenbar auf die &#8220;Community Edition&#8221;.   </p>
<p>Im System wird während der Installation übrigens auch ein User &#8220;open-xchange&#8221; und eine Gruppe &#8220;open-xchange&#8221; angelegt. </p>
<p>Im MySQL-RDBMS findet sich nun auch eine Datenbank  </p>
<p style="margin-left:20px;">&#8220;oxdatabase_INDEX&#8221;,</p>
<p>wobei &#8220;INDEX&#8221; für die oben erwähnte id in der Tabelle &#8220;configdb_sequence&#8221; der Konfigurationsdatenbank steht. In meinem Fall also &#8220;oxdatabase_5&#8243;. Diese Datenbank nimmt später die eigentlichen Daten des OX-Systems und seiner Kontexte auf.  </p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 3: &#8220;Registrieren&#8221; des Servers</p>
<p>Wir starten zunächst die OX 6 Administrations-Services</p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp;  /etc/init.d/open-xchange-admin start</p>
<p>Der resultierende Prozess läuft übrigens unter der nichtssagenden Bezeichnung &#8220;java&#8221; unter dem User &#8220;root&#8221;. Dass er der korrekte OX6 Daemonprozess ist, erkennt man erst über einen pid-Eintrag unter </p>
<p style="margin-left:20px;">/var/run/open-xchange-admindaemon.pid</p>
<p>Ein &#8220;cat&#8221; für dieses File zeigt einem dann die PID des Prozesses. </p>
<p>Nun muss der installierte Server in der zentralen Konfigurationsdatenbank &#8220;configdb&#8221; registriert werden. Dies geschieht wieder durch ein Script:  </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp;  /opt/open-xchange/sbin/registerserver &nbsp;&minus;n MY_OX_SERVER_NAME &nbsp;&minus;A oxadminmaster &nbsp;&minus;P MY_OX_MASTER_ADMIN_PWD</p>
<p>Als Ergebnis erhält man u.a. einen Eintrag in der Tabelle &#8220;server&#8221; der Bank &#8220;configdb&#8221;. </p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 4: Anlegen eines Verzeichnisses zum Speichern von Files und Dokumenten des &#8220;Infostore&#8221;</p>
<p>OX 6 kennt ein minimales Dokumenten-Management. Letzteres präsentiert sich als sog. <strong>&#8220;Infostore&#8221;</strong>. Der zugehörige &#8220;Filestore&#8221; - ein Verzeichnis auf der Festplatte - enthält später alle im Infostore verwalteten Dokumente, aber auch Anhänge an andere Groupware Objekte wie z.B. Tasks. Das &#8220;filestore&#8221;-Verzeichnis muss angelegt und in der Konfigurationsdatenbank registriert werden. Der Ort des Filestores ist im Grunde beliebig. Ein Verzeichnis unter &#8220;/var&#8221; bietet sich an. Ich habe folgende Kommandos benutzt:    </p>
<p style="margin-left:20px;  margin-right:80px; background-color:#DDD; ">#&nbsp; mkdir /var/opt/filestore</p>
<p style="margin-left:20px; margin-top:10px; margin-right:80px; background-color:#DDD;">#&nbsp; chown open-xchange:open-xchange /var/opt/filestore/</p>
<p style="margin-left:20px; margin-top:10px; margin-right:80px; background-color:#DDD;">#&nbsp; /opt/open-xchange/sbin/registerfilestore &minus;A oxadminmaster  &minus;P MY_OX_MASTER_ADMIN_PWD &nbsp;&minus;t file:/var/opt/filestore</p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 5: Registrieren der Groupware-Datenbank&#8221;</p>
<p>Die bereits angelegte Datenbank &#8220;oxdatabase_&#8230;&#8221; wird registriert: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp;  /opt/open-xchange/sbin/registerdatabase &nbsp;&minus;A oxadminmaster &nbsp;&minus;P MY_OX_MASTER_ADMIN_PWD &nbsp;&minus;n oxdatabase &nbsp;&minus;p MY_OX_MYSQL_PWD &nbsp;&minus;m true</p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 6: Apache konfigurieren&#8221;</p>
<p style="margin-top:20px; margin-bottom:10px; font-weight:bold;"> Module</p>
<p>Auf dem lokalen Apache-Server müssen mehrere Module laufen :  </p>
<p style="margin-left:10px;">proxy, proxy_ajp, expires, deflate, headers, rewrite, proxy_balancer.</p>
<p>Mit</p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD;">#&nbsp;  a2enmod &nbsp;&minus;l</p>
<p>verschafft man sich zunächst einen Überblick, über die bereits laufenden Module. Den fehlenden Rest aus der obigen Liste lädt man dann per &#8220;a2enmod&#8221; nach. In meinem Fall:   </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">#&nbsp;  a2enmod proxy &#038;&#038; a2enmod proxy_ajp &#038;&#038; a2enmod deflate &#038;&#038; a2enmod headers &#038;&#038; a2enmod rewrite &#038;&#038; a2enmod proxy_balancer</p>
<p style="margin-top:30px; margin-bottom:10px; font-weight:bold;">Eintrag in &#8220;/etc/sysconfig/apache2&#8243;</p>
<p>Danach legt man unter Opensuse über den &#8220;sysconfig&#8221;-Mechanismus fest, welche Module Apache2 laden soll. Die richtige Datei editiert man entweder über Yast und den dortigen &#8220;Editor für /etc/sysconfig&#8221;, oder man editiert mit einem Text-Editor direkt die Datei &#8220;/etc/sysconfig/apache2&#8243; und dort die Zeile für die APACHE_MODULES: </p>
<p style="margin-left:20px;">APACHE_MODULES=&#8221;actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 proxy proxy_ajp deflate headers rewrite proxy_balancer&#8221;    </p>
<p style="margin-top:20px; margin-bottom:10px; font-weight:bold;">Ort der OX 6-Dateien auf dem Apache-Server</p>
<p>Die ausführbaren Dateien, auf die der Webserver zugreift, liegen auf einem Opensuse-System unter </p>
<p style="margin-left:20px; ">/srv/www/htdocs/ox6</p>
<p>Auf diesen Ordner wird natürlich in der Domain-Konfiguration des Web-Servers Bezug genommen. </p>
<p style="margin-top:20px; margin-bottom:10px; font-weight:bold;">Konfigurationsfiles</p>
<p>Nun legt man als root zwei neue Konfigurationsfiles für den Apache-Server an: </p>
<ul>
<li>/etc/apache2/conf.d/proxy_ajp.conf</li>
<li   style="margin-top:10px;">/etc/apache2/vhosts.d/ox.conf</li>
</ul>
<p>Die Inhalte dieser Dateien übernimmt man mit Hilfe eines Editors und Copy/Paste exakt der oben angegebenen Referenzinstallationsanleitung. Wir lassen das hier aus Platzgründen weg. </p>
<p>Das erste File regelt den Zugang zu Axis/Soap-Services und dient u.a. der Konfiguration eines Web-&#8221;Load-Balancers&#8221; für die OX6-Aufgaben, die in einer komplexen Installation ja auch auf mehrere (geclusterte) Web-Server verteilt werden könnten. In unserem Fall reduziert sich die Konfiguration auf genau ein System, nämlich localhost. Ein Blick in die Konfigurationsdatei ist ganz instruktiv. </p>
<p>Das zweite File konfiguriert den Apache-Server so, dass ein Zugriff auf den lokalen Apache immer (!) auf der Login-Seite für den OX endet! Hierfür wird der Zugriff auf das Verzeichnis &#8220;/srv/www/htdocs/ox6&#8243; umgelenkt. </p>
<p style="margin-top:20px; margin-bottom:10px; font-weight:bold;">Abändern der Konfigurationsfiles für einen namensbasierten Aufruf der OX-Seiten auf dem Apache-Server</p>
<p>Für das Testsystem ist die vollständige Umstellung des Apache-Servers auf die OX-Seiten vielleicht OK. In der Realität - und gerade in kleinen Firmen -  möchte man aber auf einem Web-Server unter einer IP-Adresse mehrere unterschiedlich benannte Web-Domainen zur Verfügung stellen. Deswegen ist der nachfolgende Text nicht ganz so &#8220;off topic&#8221; wie es zunächst erscheinen mag. </p>
<p>Ich z.B. möchte meine aktuelle Apache-Services unter der Adresse des Testsystems unverändert lassen und deshalb den OX-Service bei mir im internen Netz nur unter dem (verkürzten http-Domain-) Namen &#8220;oxs3&#8243; erreichen. Bei einem lokalen Standardzugriff &#8220;http:/localhost&#8221; auf dem Testsystem selbst sollen andere Dateien erscheinen - nämlich die, die bisher schon im Verzeichnis &#8220;/srv/www/htdocs/&#8221; vorhanden waren. Auch von extern sollen die Dateien unter &#8220;/srv/www/htdocs/&#8221;, wenn der Server unter seinem Standardnamen &#8220;http:/mytestserver&#8221; aufgerufen wird. </p>
<p>Ich möchte also trotz evtl. gleicher IP-Adresse eine saubere Trennung der Web-Dienste haben, wenn ich den Server von innen und außen mit unterschiedlichen (&#8221;Domain&#8221;)-Namen und IP-Adressen aufrufe. Nehmen wir an, der Server des Testsystems habe im lokalen Netz die IP-Adresse 192.168.0.2 und sei DNS-seitig unter dem Namen mytestserver, ruxa, ruxb bekannt. Dann sollen folgende Aufrufe folgendes Ergebnis zeitigen : </p>
<ul>
<li>http://localhost  &gt;&gt; Anzeige von Inhalten unter /srv/www/htdocs/</li>
<li>http://127.0.0.1 (auf dem lokalen System) &gt;&gt;  Anzeige von Inhalten unter /srv/www/htdocs/</li>
<li>http://192.168.0.2 (von innen und von extern)  &gt;&gt; Anzeige von Inhalten unter /srv/www/htdocs/</li>
<li>http://mytestserver (von innen und von extern)  &gt;&gt; Anzeige von Inhalten unter /srv/www/htdocs/</li>
<li>http://oxs3 (von innen und von extern)  &gt;&gt; Anzeige von Inhalten unter /srv/www/htdocs/ox6</li>
<li>http://127.0.0.2 (auf dem lokalen System) &gt;&gt;  Anzeige von Inhalten unter /srv/www/htdocs/ox6</li>
<li>https://ruxa (von innen und von extern) &gt;&gt; TLS/SSL-gesicherte Anzeige von Inhalten unter /srv/www/htdocs/ruxa</li>
<li>https://ruxb (von innen und von extern) &gt;&gt; TLS/SSL-gesicherte Anzeige von Inhalten unter /srv/www/htdocs/ruxb</li>
</ul>
<p>Unter solchen Voraussetzungen muss man die Konfiguration natürlich etwas ändern. Ich kann das hier nur andeuten. In die Datei &#8220;/etc/apache2/listen.conf&#8221; des Testservers nehme ich folgende Zeilen für &#8220;NameVirtualHost&#8221; zu den involvierten IP-Adressen auf:  </p>
<div style=" width:500px;  height:150px; padding:8px; overflow:auto; background-color:#FFFFC0; margin-left:40px; margin-top:20px; margin-bottom:20px;">
Listen 80<br />
&lt;IfDefine SSL&gt;<br />
&nbsp;&nbsp; &lt;IfDefine !NOSSL&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; &lt;IfModule mod_ssl.c&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Listen 443<br />
&nbsp;&nbsp; &nbsp;&nbsp;  &lt;/IfModule&gt;<br />
&nbsp;&nbsp; &lt;/IfDefine&gt;<br />
&lt;/IfDefine&gt;<br />
NameVirtualHost 127.0.0.2:443<br />
NameVirtualHost 192.168.0.2:443<br />
NameVirtualHost 127.0.0.2:80<br />
NameVirtualHost 192.168.0.2:80
</div>
<p>Die Datei /etc/apache2/vhosts.d/ox.conf ergänze ich wie folgt  - es werden nur die wichtigsten Einträge gezeigt:        </p>
<div style=" width:500px; height:150px; padding:8px; overflow:auto; background-color:#FFFFC0; margin-left:40px; margin-top:20px; margin-bottom:20px;">
&lt;VirtualHost 127.0.0.1:80 192.168.0.2:80 &gt;<br />
&nbsp;&nbsp; &#8230;<br />
&nbsp;&nbsp; DocumentRoot /srv/www/htdocs<br />
&nbsp;&nbsp; # hier keinen Servername angeben !<br />
&nbsp;&nbsp; &#8230;.<br />
&nbsp;&nbsp; &lt;Directory /srv/www/htdocs&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		AllowOverride None<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		Order allow,deny<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		allow from all<br />
&nbsp;&nbsp; 	&lt;/Directory&gt;<br />
&#8230;<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 127.0.0.2:80 192.168.0.2:80&gt;<br />
&nbsp;&nbsp; &#8230;.<br />
&nbsp;&nbsp; 	DocumentRoot /srv/www/htdocs<br />
&nbsp;&nbsp; 	<strong>ServerName mytestserver:80</strong></p>
<p>&nbsp;&nbsp; 	&lt;Directory /srv/www/htdocs&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		AllowOverride None<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		Order allow,deny<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		allow from all<br />
&nbsp;&nbsp; 	&lt;/Directory&gt;<br />
&#8230;..<br />
&lt;/VirtualHost&gt;</p>
<p>############################<br />
### Einträge für den OX Server-Dienst ###<br />
############################</p>
<p>&lt;VirtualHost 127.0.0.2:80 192.168.0.2:80&gt;<br />
&nbsp;&nbsp; 	&#8230;.<br />
&nbsp;&nbsp; 	DocumentRoot /srv/www/htdocs<br />
&nbsp;&nbsp; 	<strong>ServerName oxs3:80</strong></p>
<p>&nbsp;&nbsp; 	&lt;Directory /srv/www/htdocs><br />
&nbsp;&nbsp; &nbsp;&nbsp; 		AllowOverride None<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		Order allow,deny<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		allow from all<br />
&nbsp;&nbsp; &nbsp;&nbsp; 		<strong>RedirectMatch ^/$ /ox6/</strong><br />
&nbsp;&nbsp; &nbsp;&nbsp;                Options +FollowSymLinks +SymLinksIfOwnerMatch<br />
&nbsp;&nbsp; 	&lt;/Directory&gt;<br />
&nbsp;&nbsp;        # deflate<br />
&nbsp;&nbsp;       AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript</p>
<p>&nbsp;&nbsp; 	# pre-compressed files<br />
&nbsp;&nbsp; 	AddType text/javascript .jsz<br />
&nbsp;&nbsp; 	AddType text/css .cssz<br />
&nbsp;&nbsp; 	AddType text/xml .xmlz<br />
&nbsp;&nbsp;         AddType text/plain .po</p>
<p>&nbsp;&nbsp; 	AddEncoding gzip .jsz .cssz .xmlz<br />
&nbsp;&nbsp; 	SetEnvIf Request_URI &#8220;\.(jsz|cssz|xmlz)$&#8221; no-gzip</p>
<p>&nbsp;&nbsp; 	ExpiresActive On</p>
<p>&nbsp;&nbsp; &lt;Location /ox6&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; &#8230; <em>Inhalte wie in der Referenzanleitung</em> &#8230;<br />
&nbsp;&nbsp; &lt;/Location&gt;<br />
&nbsp;&nbsp; &lt;Location /ox6/ox.html&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; &#8230; <em>Inhalte wie in der Referenzanleitung</em> &#8230;<br />
&nbsp;&nbsp; &lt;/Location&gt;<br />
&nbsp;&nbsp; &lt;Location /ox6/index.html&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp; &#8230; <em>Inhalte wie in der Referenzanleitung</em> &#8230;<br />
&nbsp;&nbsp; &lt;/Location&gt;<br />
&lt;/VirtualHost&gt;
</div>
<p>Für die SSL-Domainen habe ich eine eigene Datei &#8220;/etc/apache2vhosts.d/vhost-ssl.conf&#8221; mit ungefähr folgendem Inhalt  </p>
<div style=" width:500px; height:150px; padding:8px; overflow:auto; background-color:#FFFFC0; margin-left:40px; margin-top:20px; margin-bottom:20px;">
&lt;IfDefine SSL&gt;<br />
&lt;IfDefine !NOSSL&gt;</p>
<p>## SSL Virtual Host Context</p>
<p>&lt;VirtualHost 127.0.0.2:443 192.168.02.:443&gt;</p>
<p>&nbsp;&nbsp; 	#  General setup for the virtual host<br />
&nbsp;&nbsp; 	DocumentRoot &#8220;/srv/www/htdocs/ruxa&#8221;<br />
&nbsp;&nbsp; 	ServerName ruxa:443<br />
&nbsp;&nbsp; &#8230;<br />
&nbsp;&nbsp; &#8230;<br />
&nbsp;&nbsp; #   SSL Engine Switch:<br />
&nbsp;&nbsp; &nbsp;&nbsp; SSLEngine on</p>
<p>&nbsp;&nbsp; 	#   SSL Cipher Suite:<br />
&nbsp;&nbsp; &nbsp;&nbsp; 	SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
&nbsp;&nbsp; &#8230;.<br />
	#   Server Certificate:<br />
&nbsp;&nbsp; &nbsp;&nbsp; &#8230;.<br />
&nbsp;&nbsp;&#8230;.<br />
&nbsp;&nbsp;&#8230;.<br />
&lt;/VirtualHost&gt;  </p>
<p>&lt;VirtualHost 127.0.0.2:443&gt;<br />
&nbsp;&nbsp; 	DocumentRoot &#8220;/srv/www/htdocs/ruxb&#8221;<br />
&nbsp;&nbsp; 	ServerName ruxb:443<br />
&nbsp;&nbsp; &#8230;<br />
&nbsp;&nbsp; &#8230;.<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;/IfDefine&gt;<br />
&lt;/IfDefine&gt;</p>
</div>
<p>Hieraus sollte hervorgehen, wie man einen namensbasierten Zugriff erreicht. Die Zugriffsregeln - oben ist oft &#8220;allow from all&#8221; gesetzt muss man natürlich anpassen. Auf die Konfiguration eines SSL-Servers kann ich hier nicht eingehen. Siehe aber die Links in <a href="http://linux-blog.anracom.com/2010/07/25/lokaler-apache-test-server-fur-php5/">http://linux-blog.anracom.com/2010/07/25/lokaler-apache-test-server-fur-php5/</a>. </p>
<p>Die diversen Namen (oxs3, mytestserver) unter denen der Web-Server erreichbar sein soll, muss man natürlich über seinen DNS-Server bekannt machen oder aber entsprechende Einträge in den &#8220;/etc/hosts&#8221;-Dateien vornehmen. In meinem Beispiel etwa sind folgende Daten auf dem Testsystem selbst relevant:    </p>
<div style=" width:500px; height:150px; padding:8px; overflow:auto; background-color:#FFFFC0; margin-left:40px; margin-top:20px; margin-bottom:20px;">
127.0.0.1 &nbsp; &nbsp; &nbsp; &nbsp;       localhost<br />
# special IPv6 addresses<br />
::1    &nbsp; &nbsp; &nbsp; &nbsp;          localhost ipv6-localhost ipv6-loopback<br />
fe00::0  &nbsp; &nbsp; &nbsp; &nbsp;        ipv6-localnet<br />
ff00::0  &nbsp; &nbsp; &nbsp; &nbsp;        ipv6-mcastprefix<br />
ff02::1  &nbsp; &nbsp; &nbsp; &nbsp;        ipv6-allnodes<br />
ff02::2   &nbsp; &nbsp; &nbsp; &nbsp;       ipv6-allrouters<br />
ff02::3    &nbsp; &nbsp; &nbsp; &nbsp;      ipv6-allhosts<br />
127.0.0.2   &nbsp; &nbsp; &nbsp; &nbsp;     oxs3<br />
127.0.0.2    &nbsp; &nbsp; &nbsp; &nbsp;    ruxa<br />
127.0.0.2    &nbsp; &nbsp; &nbsp; &nbsp;    ruxb<br />
192.168.0.2  &nbsp; &nbsp; &nbsp; &nbsp;   mytestserver.anracona.de mytestserver<br />
192.168.0.2  &nbsp; &nbsp; &nbsp; &nbsp;   oxs3.anracona.de oxs3
</div>
<p>Hierbei bin ich von einer Zugehörigkeit der Server zu einer Domaine &#8220;anracona.de&#8221; ausgegangen, die auf dem DNS-Server des Netzes angelegt und konfiguriert sein muss. </p>
<p>Hat man seinen Apache konfiguriert, muss er erneut gestartet werden: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">#&nbsp; rcapache2 restart</p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 7: Groupware-Dienste starten / erster Test</p>
<p>Die Groupware-Dienste/Dämonen startet man unter Opensuse mit : </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">#&nbsp; rcopen-xchange-groupware start</p>
<p>oder </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; ">#&nbsp; /etc/init.d/open-xchange-groupware start</p>
<p><strong>Erster Test </strong><br />
Nun sollte man bei einem Aufruf des Webservers über den Browser einen Login-Schirm sehen. Hat man die Apache-Konfiguration gegenüber der Standardinstallationsanleitung nicht geändert, so genügt zum Testen die Adresse &#8220;http://localhost&#8221;. </p>
<p>Ist man dagegen meinem Beispiel bzgl. eines namensbasierten Aufrufes gefolgt, so erreicht man den OX-Login-Schirm lokal auf dem Testsystem über die Eingabe der Adressen &#8220;http://oxs3&#8243; oder &#8220;http://127.0.0.2&#8243;  - und gerade nicht über &#8220;http://localhost&#8221;.      </p>
<p>Natürlich gibt es für einen echten Login-Vorgang noch keinen User. Diese legen wir in Teil II an. </p>
<p style="font-size:14px; font-weight:bold; margin-top:30px; margin-bottom:10px;">Schritt 8: Benötigte Dienste den Runlevels zuordnen</p>
<p>Bevor wir den Default-Kontext erstellen und einen User anlegen, sollten wir die benötigten Serverdienste noch den gewünschten Runleveln zuordnen, damit sie beim nächsten System-Boot automatisch gestartet werden. Ich erledige das für die Dienste &#8220;mysql, apache2, open-xchange-groupware und open-xchange-admin&#8221; über &#8220;YAST &gt; Systemdienste (Runlevel) &gt; Expertenmodus&#8221;, da ich dort die Startlevel selber angeben kann. Nimmt man die vorgesehen Standardlevel, so genügt auch: </p>
<p style="margin-left:20px; margin-right:80px; background-color:#DDD; "># insserv mysql; insserv apache2; insserv open-xchange-groupware; insserv open-xchange-admin</p>
<p>Damit ist die Grundinstallation des OX6-Servers [CE] erledigt. Im nächsten Beitrag zu diesem Thema legen wir den Default-Kontext und einige User an, die auch auf den IMAP-Server zugreifen sollen.   </p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/08/21/kontact-47-und-ox-6-unter-opensuse-114-teil-i/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL - Sortierung in UNION Statements</title>
		<link>http://linux-blog.anracom.com/2011/08/17/mysql-sortierung-in-union-statements/</link>
		<comments>http://linux-blog.anracom.com/2011/08/17/mysql-sortierung-in-union-statements/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 12:02:33 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/08/17/mysql-sortierung-in-union-statements/</guid>
		<description><![CDATA[Heute sind meine Frau und ich über ein kleines My-SQL-Problem gestolpert. Wir hatten ein Statement der Art 
( SELECT &#8230;. ORDER BY &#8230;) UNION (SELECT &#8230;.. ORDER BY &#8230; ) 
Wir waren beide der Meinung, dass das zusammengesetzte Ergebnis pro Einzelresultset die jeweils gewünschte Sortierung aufweisen würde. Das war aber leider nicht der Fall ! [...]]]></description>
			<content:encoded><![CDATA[<p>Heute sind meine Frau und ich über ein kleines My-SQL-Problem gestolpert. Wir hatten ein Statement der Art </p>
<p style="margin-left:20px;">( SELECT &#8230;. ORDER BY &#8230;) UNION (SELECT &#8230;.. ORDER BY &#8230; ) </p>
<p>Wir waren beide der Meinung, dass das zusammengesetzte Ergebnis pro Einzelresultset die jeweils gewünschte Sortierung aufweisen würde. Das war aber leider nicht der Fall ! </p>
<p>Dabei hatten wir bereits früher ähnliche Statements verwendet, in denen die Sortierung funktionierte! Wir hatten jedoch eine bedeutsame Kleinigkeit übersehen. Unsere früheren Statements waren nämlich von der Art:     </p>
<p style="margin-left:20px;">( SELECT &#8230;. ORDER BY &#8230; LIMIT .. ) UNION (SELECT &#8230;.. ORDER BY &#8230; LIMIT &#8230;. ) </p>
<p>Der Unterschied liegt in der Vorgabe von LIMIT, also der Begrenzung der jeweiligen Teil-Resultsets im UNION-Statement. Wir haben dann ein wenig herumprobiert und herausgefunden, dass eine LIMIT-Vorgabe tatsächlich erforderlich ist, wenn beide (oder mehrere) Resultsets separat sortiert und danach zum Union-Resultset zusammengefügt werden sollen.   </p>
<p>Offenbar ignoriert der MySQL-Optimizer die ORDER-Statements der Teil-Selects, wenn die einzelnen Resultsets nicht explizit begrenzt werden.    </p>
<p>Somit stehen einem wohl zwei Arten zur Verfügung, wei man ein UNION-Resultset ordnen kann: </p>
<ul>
<li><strong>Variante 1 - separate Sortierung der Einzel-Resultsets :</strong>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<strong>( SELECT &#8230;. ORDER BY &#8230; LIMIT &#8230; ) UNION (SELECT &#8230;.. ORDER BY &#8230; LIMIT &#8230; )</strong></li>
<li style="margin-top:20px;"><strong>Variante 2 - Sortierung des Gesamt-Resultsets :</strong>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<strong>( SELECT &#8230;.  ) UNION (SELECT &#8230;. ) ORDER BY &#8230;. </strong></li>
</ul>
<p><strong>Hinweise: </strong><br />
Die Klammerung ist mindestens im zweiten Beispiel von ausschlaggebender Bedeutung.<br />
Klar auch, dass dabei die Felder der Einzel-Selects identisch sein sollten. </p>
<p><strong>Links: </strong><br />
In einigen MySQL-Foren findet man tatsächlich auch entsprechende Hinweise. Man sollte da doch öfter mal reinschauen: </p>
<p><a href="http://www.mysqlfaqs.net/mysql-faqs/Funtions-and-Operators/How-does-union-work-in-MySQL">http://www.mysqlfaqs.net/mysql-faqs/Funtions-and-Operators/How-does-union-work-in-MySQL</a><br />
<a href="http://forums.mysql.com/read.php?10,412000,412000">http://forums.mysql.com/read.php?10,412000,412000</a></p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/08/17/mysql-sortierung-in-union-statements/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Buchempfehlungen zu CSS2</title>
		<link>http://linux-blog.anracom.com/2011/08/03/buchempfehlungen-zu-css2/</link>
		<comments>http://linux-blog.anracom.com/2011/08/03/buchempfehlungen-zu-css2/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 14:59:52 +0000</pubDate>
		<dc:creator>rmo</dc:creator>
		
		<category><![CDATA[LAMP / Webentwicklung]]></category>

		<guid isPermaLink="false">http://linux-blog.anracom.com/2011/08/03/buchempfehlungen-zu-css2/</guid>
		<description><![CDATA[Gestern fragte mich ein Bekannter, welche Bücher ich ihm für eine Einarbeitung in CSS2 empfehlen könne. Wichtig war ihm auch, dass auf praxisnahe Aufgabenstellungen eingegangen wird. Vielleicht interessiert meine Empfehlung auch andere: 
Ich empfehle

als Basis: &#8220;Cascading Style Sheets&#8221;, Eric A. Meyer, O&#8217;Reilly (das
Referenzwerk zum Einsteigen und Nachschlagen vom Guru)
für das Erlernen grundlegender Design-Tricks:  &#8220;CSS [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern fragte mich ein Bekannter, welche Bücher ich ihm für eine Einarbeitung in CSS2 empfehlen könne. Wichtig war ihm auch, dass auf praxisnahe Aufgabenstellungen eingegangen wird. Vielleicht interessiert meine Empfehlung auch andere: </p>
<p>Ich empfehle</p>
<ul>
<li>als Basis: <strong>&#8220;Cascading Style Sheets&#8221;</strong>, Eric A. Meyer, O&#8217;Reilly (das<br />
Referenzwerk zum Einsteigen und Nachschlagen vom Guru)</li>
<li style="margin-top:10px;">für das Erlernen grundlegender Design-Tricks:  <strong>&#8220;CSS Mastery&#8221;</strong>, A. Budd, C.Moll, S. Collison,<br />
Addison-Wesley (ein sehr gutes Buch)</li>
<li style="margin-top:10px;">zur Vertiefung: <strong>&#8220;Fortgeschrittene CSS-Techniken&#8221;</strong>,  I. Chao, C. Rudel, Galileo<br />
Computing (ein sehr gutes Buch, teilweise Überlapp mit CSS Mastery, aber<br />
aktueller, mit vielen interessanten Details und nützlichen Hinweisen zu Browserunterschieden)  </li>
<li style="margin-top:10px;">ergänzend: <strong>&#8220;Eric Meyer on CSS&#8221;</strong>, E.A.Meyer, New Riders (Fallstudien von<br />
E.Meyer) </li>
</ul>
<p>Ich habe die Bücher selbst und nutze Sie immer wieder gerne.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux-blog.anracom.com/2011/08/03/buchempfehlungen-zu-css2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

