{"id":1104,"date":"2010-07-19T13:06:29","date_gmt":"2010-07-19T11:06:29","guid":{"rendered":"http:\/\/www.bdjl.de\/localhost\/?p=1104"},"modified":"2010-11-08T14:24:53","modified_gmt":"2010-11-08T13:24:53","slug":"etherpad-2","status":"publish","type":"post","link":"https:\/\/www.bdjl.de\/localhost\/?p=1104","title":{"rendered":"etherpad"},"content":{"rendered":"<p>Die c&#8217;t von heute hat einen Artikel zur Installation von <a title=\"etherpad\" href=\"http:\/\/etherpad.org\" target=\"_blank\">etherpad<\/a> auf debianoiden Linuxen ver\u00f6ffentlicht, den ich gerade in einer VM unter Debian 5 nachzuvollziehen versuche. Der Artikel scheint jedoch f\u00fcr Ubuntu geschrieben worden zu sein. Unter Debian 5 will es wie von der c&#8217;t beschrieben einfach nicht klappen &#8211; und aus diesem Grund hier eine ver\u00e4nderte und erweiterte Anleitung, die hoffentlich Idioten sicher ist:<\/p>\n<p>Zuerst kommt die Installation eines Debian5-Minimalsystems dran. Dann als root<\/p>\n<blockquote><p>deb http:\/\/apt.etherpad.org all .<br \/>\ndeb http:\/\/ftp.de.debian.org\/debian\u00a0 sid main non-free<\/p><\/blockquote>\n<p>in die \/etc\/apt\/sources.list eintragen. Ein<\/p>\n<blockquote><p>apt-get update<\/p><\/blockquote>\n<p>aktualisiert die Paketliste. Aufpassen: Durch das SID Repo w\u00fcrde ein apt-get dist-upgrade zu einem Wechsel von der stable Version von Debian zu Sid f\u00fchren. Wer das vermeiden will, sollte das Repo f\u00fcr Sid nach Fertigstellung der ehterpad-Installation dann wieder aus der sources.list auskommentieren. Die Fehlermeldungen wegen den evtl. nicht vorhandenen Keys (auf&#8217;s Erste) ignorieren. Ein<\/p>\n<blockquote><p>apt-get install\u00a0 sun-java6-jdk<\/p><\/blockquote>\n<p>f\u00fchrt zur Installation der folgenden zus\u00e4tzlichen Pakete:<\/p>\n<blockquote><p>avahi-daemon dbus gsfonts gsfonts-x11 java-common libasound2 libavahi-common-data libavahi-common3 libavahi-core7 libc-bin libc6 libc6-i686 libdaemon0 libdbus-1-3 libexpat1 libfontenc1 libfreetype6 libltdl7 libncurses5 libnss-mdns libreadline6 libx11-6 libxcb1 libxfont1 libxi6 libxtst6 locales odbcinst odbcinst1debian2 sun-java6-bin sun-java6-jre unixodbc xfonts-encodings xfonts-utils<\/p><\/blockquote>\n<p>Insgesamt landen hier rund 75 MB an zus\u00e4tzlichen Daten aus dem Netz auf dem Rechner und brauchen ca. 180 MB an Platz nach der Installation. Wegrennen kann man in dieser Phase nicht, weil (neben einigen anderen notwendigen Userinteraktionen) die Lizenzbedingungen von Sun abgenickt werden m\u00fcssen.<\/p>\n<p>Ein<\/p>\n<blockquote><p>java -version<\/p><\/blockquote>\n<p>sollte die folgende Ausgabe bringen:<\/p>\n<blockquote><p>java version &#8222;1.6.0_20&#8220;<br \/>\nJava(TM) SE Runtime Environment (build 1.6.0_20-b02)<br \/>\nJava HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)<\/p><\/blockquote>\n<p>Wenn nicht, dann ist die Sun Java VM mit dem folgenden Befehl als Default einzurichten:<\/p>\n<blockquote><p>update-alternatives &#8211;config java<\/p><\/blockquote>\n<p>Es folgt die Installation des mysql Servers sowie der Verbindungssoftware zwischen Java und dem Datenbankserver. Ich zieh mir hier auch gleich noch phpmyadmin und einen Apachen:<\/p>\n<blockquote><p>apt-get install scala mysql-server libmysql-java mercurial phpmyadmin apache2<\/p><\/blockquote>\n<p>Debian zieht sich nun<\/p>\n<blockquote><p>apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common fontconfig-config javascript-common libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdb4.7 libdb4.8 libdbd-mysql-perl libdbi-perl libfontconfig1 libgd2-xpm libgssapi-krb5-2 libhtml-template-perl libjpeg62 libjs-mootools libk5crypto3 libkrb5-3 libkrb5support0 libmcrypt4 libmysqlclient16 libnet-daemon-perl libonig2 libpcre3 libplrpc-perl libpng12-0 libqdbm14 libsqlite3-0 libssl0.9.8 libt1-5 libuuid1 libxml2 libxpm4 make mercurial-common mysql-client-5.1 mysql-common mysql-server-5.1 mysql-server-core-5.1 openssl perl perl-base perl-modules php5-cli php5-common php5-gd php5-mcrypt php5-mysql php5-suhosin psmisc python-support scala-library ssl-cert wwwconfig-common<\/p><\/blockquote>\n<p>und l\u00e4dt hierzu 67 MB aus dem Netz. Nach der Installation ist der Plattenplatz wieder um 130 MB kleiner.<\/p>\n<p>Bei der Installation ist dann das mysql root-Passwort anzugeben und dieser f\u00fcr den Apachen zu konfigurieren (ist nur ein Klick in einem Auswahlfenster). Weiter ist der administrative Benutzer f\u00fcr phpmyadmin anzugeben und ein Passwort zu setzen.<\/p>\n<p>Jetzt kann man im Browser durch Aufruf der IP \/ Domain des Servers mal nachsehen, ob alles geklappt hat und der Server sowie phpmyadmin erreichbar sind.<\/p>\n<p>In die Datei \/etc\/profile wird nun der folgende Code hinzugef\u00fcgt, damit alle Komponenten sich auch gegenseitig finden k\u00f6nnen:<\/p>\n<blockquote><p>export JAVA_HOME=&#8220;\/usr\/lib\/jvm\/java-6-sun&#8220;<br \/>\nexport SCALA_HOME=&#8220;\/usr\/share\/java&#8220;<br \/>\nexport JAVA=&#8220;\/usr\/bin\/java&#8220;<br \/>\nexport SCALA=&#8220;\/usr\/bin\/scala&#8220;<br \/>\nexport PATH=&#8220;\/usr\/bin:\/usr\/bin:\/usr\/local\/mysql\/bin:$PATH&#8220;<br \/>\nexport MYSQL_CONNECTOR_JAR=&#8220;\/usr\/share\/java\/mysql-connector-java-5.1.10.jar&#8220;<br \/>\nexport JAVA_HOME SCALA_HOME JAVA SCALA MYSQL_CONNECTOR_JAR PATH<\/p><\/blockquote>\n<p>Ein<\/p>\n<blockquote><p>echo $PATH<\/p><\/blockquote>\n<p>zeigt, ob es mit den Exporten klappt. Wenn nicht, dann entweder &#8222;sourcen&#8220; oder ab- und wieder anmelden und erneut \u00fcberpr\u00fcfen.<\/p>\n<p>Ein<\/p>\n<blockquote><p>apt-get install etherpad<\/p><\/blockquote>\n<p>zieht die notwendigen Abh\u00e4ngigkeiten mit sich. Man sollte hier aber nicht wie gewohnt ein paar Mal [Enter] dr\u00fccken, sondern beachten, dass auf Grund der fehlenden Keys f\u00fcr die neu hinzugef\u00fcgten Repos die Vorauswahl von Debian bei der R\u00fcckfrage, ob man nicht vertrauensw\u00fcrdige Pakete einspielen will, auf Nein steht. Das sieht so aus:<\/p>\n<blockquote><p>WARNUNG: Die folgenden Pakete k\u00f6nnen nicht authentifiziert werden!<br \/>\netherpad<br \/>\nDiese Pakete ohne \u00dcberpr\u00fcfung installieren [j\/N]? j<\/p><\/blockquote>\n<p>Rund 30 MB werden aus dem Netz geholt, die nach der Installation weitere 44 MB belegen werden. W\u00e4hrend der Installation sind dann wieder das mysql root Passwort anzugeben (damit etherpad seine Datenbank anlegen kann). Au\u00dferdem ist der administrative Benutzer f\u00fcr Etherpad anzugeben und auch die Domain, unter der etherpad zu erreichen sein soll. Der Eintrag localhost ist hier entsprechend zu erg\u00e4nzen.<\/p>\n<p>In der Datei<\/p>\n<blockquote><p>\/usr\/share\/etherpad\/etherpad\/bin\/run-local.sh<\/p><\/blockquote>\n<p>sind ist noch eine Anpassungen n\u00f6tig: Ziemlich weit oben in diesem Startskript steht<\/p>\n<blockquote><p>MXRAM=&#8220;1G&#8220;<\/p><\/blockquote>\n<p>Das ist f\u00fcr die ersten Tests ein wenig viel, schreibt die c&#8217;t, und meint, der folgende Eintrag w\u00fcrde auch reichen:<\/p>\n<blockquote><p>MXRAM=&#8220;128m&#8220;<\/p><\/blockquote>\n<p>Hervorzuheben ist, dass hier nicht 128MB oder 128M stehen darf, da sonst ein Syntaxfehler moniert wird. In vielen Anleitungen im Netz ist das aber der Fall. Komisch.<\/p>\n<p>Die w\u00e4hrend der Installation gemachten Angaben sind dann hier<\/p>\n<blockquote><p>\/etc\/etherpad\/etherpad.local.properties<\/p><\/blockquote>\n<p>zu finden und k\u00f6nnen falls n\u00f6tig angepasst werden. Ich habe am Ende noch die Zeile<\/p>\n<blockquote><p>etherpad.skipHostnameCheck = true<\/p><\/blockquote>\n<p>eingef\u00fcgt, um sp\u00e4ter weniger Probleme zu bekommen. Hier besteht aber auch die M\u00f6glichkeit, den etherpad Server auf HTTPS umzubiegen. Gelogt wird im default nach<\/p>\n<blockquote><p>\/var\/log\/etherpad<\/p><\/blockquote>\n<p>Da das Startskript in \/etc\/init.d\/etherpad extrem schweigsam ist, empfiehlt sich f\u00fcr den ersten Start die Nutzung von run-local.sh im oben angegebenen Verzeichnis.<\/p>\n<blockquote><p>root@debian5:\/usr\/share\/etherpad\/etherpad# .\/bin\/run-local.sh<\/p><\/blockquote>\n<p>Wichtig ist hier, dass der etherpad Server wirklich aus dem Verzeichnis \/usr\/share\/etherpad\/etherpad heraus gestartet wird, sonst erh\u00e4lt man die Fehlermeldung<\/p>\n<blockquote><p>Using config file: .\/etc\/etherpad.localdev-default.properties<br \/>\nException in thread &#8222;main&#8220; java.lang.NoClassDefFoundError: net\/appjet\/oui\/main<br \/>\nCaused by: java.lang.ClassNotFoundException: net.appjet.oui.main<br \/>\nat java.net.URLClassLoader$1.run(URLClassLoader.java:202)<br \/>\nat java.security.AccessController.doPrivileged(Native Method)<br \/>\nat java.net.URLClassLoader.findClass(URLClassLoader.java:190)<br \/>\nat java.lang.ClassLoader.loadClass(ClassLoader.java:307)<br \/>\nat sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)<br \/>\nat java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br \/>\nHeap<br \/>\ndef new generation\u00a0\u00a0 total 14784K, used 263K [0x9f880000, 0xa0880000, 0xa0880000)<br \/>\neden space 13184K,\u00a0\u00a0 2% used [0x9f880000, 0x9f8c1ec8, 0xa0560000)<br \/>\nfrom space 1600K,\u00a0\u00a0 0% used [0xa0560000, 0xa0560000, 0xa06f0000)<br \/>\nto\u00a0\u00a0 space 1600K,\u00a0\u00a0 0% used [0xa06f0000, 0xa06f0000, 0xa0880000)<br \/>\nconcurrent mark-sweep generation total 245760K, used 0K [0xa0880000, 0xaf880000, 0xaf880000)<br \/>\nconcurrent-mark-sweep perm gen total 16384K, used 1567K [0xaf880000, 0xb0880000, 0xb3880000)<br \/>\nCould not find the main class: net.appjet.oui.main.\u00a0 Program will exit.<\/p><\/blockquote>\n<p>Jetzt kann etherpad auch auf der Shell mit dem Browser links2 erreicht werden:<\/p>\n<blockquote><p>links2 http:\/\/localhost:9000\/<\/p><\/blockquote>\n<p>Damit der Server auch \u00fcber Port 80 und nicht nur lokal zu benutzen ist, passen wir den Apache an.<\/p>\n<blockquote><p>a2enmod proxy_http<br \/>\n\/etc\/init.d\/apache2 restart<\/p><\/blockquote>\n<p>Der folgende Code kommt in die Apache Konfigurationsdatei:<\/p>\n<blockquote><p>&lt;IfModule mod_proxy_http.c&gt;<br \/>\nProxyPass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 http:\/\/localhost:9000\/<br \/>\nProxyPassReverse\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 http:\/\/localhost:9000\/<br \/>\nProxyPreserveHost\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 on<br \/>\n&lt;Proxy http:\/\/localhost:9000\/&gt;<br \/>\nOrder Allow,Deny<br \/>\nAllow from all<br \/>\n&lt;\/Proxy&gt;<br \/>\n&lt;\/IfModule&gt;<\/p><\/blockquote>\n<p>der daraufhin einen restart braucht:<\/p>\n<blockquote><p>\/etc\/init.d\/apache2 restart<\/p><\/blockquote>\n<p>Wenn man dann immer bei einer komischen Seite mit dem Namen &#8222;false&#8220; landet, liegt es an der Konfiguration von etherpad. Ein Eintrag der IP des Servers hinter<\/p>\n<blockquote><p>topdomains =<\/p><\/blockquote>\n<p>in<\/p>\n<blockquote><p>\/etc\/etherpad\/etherpad.local.properties<\/p><\/blockquote>\n<p>und nachfolgendem Neustart von etherpad und Apache erledigt das Problem.<\/p>\n<p>Und nach dem vielen Text, hier dann endlich das Ergebnis mit Bild:<\/p>\n<p><a href=\"http:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2010\/07\/EtherPad-qKBaFHEknG-Mozilla-Firefox_003.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1128\" title=\"EtherPad: qKBaFHEknG - Mozilla Firefox_003\" src=\"http:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2010\/07\/EtherPad-qKBaFHEknG-Mozilla-Firefox_003-450x465.png\" alt=\"\" width=\"450\" height=\"465\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2010\/07\/EtherPad-qKBaFHEknG-Mozilla-Firefox_003-450x465.png 450w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2010\/07\/EtherPad-qKBaFHEknG-Mozilla-Firefox_003.png 919w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>Ich muss schon sagen: Die Herren Jo Bager und Alvar Freude machen es sich in der c&#8217;t doch ein wenig einfach \ud83d\ude42 Ohne meinen Basteltrieb h\u00e4tte ich z\u00fcgig wieder aufgegeben.<\/p>\n<p>Sicherheitstechnisch ist der etherpad-Server, den ich hier beschreibe, nicht eine Bohne wert &#8211; aber f\u00fcr das interne Netz m\u00fcsste es reichen. Hoffentlich. Sobald ich das Ding dann in meiner Schule am laufen habe, werde ich die Konsequenzen ja miterleben und auch mittragen. F\u00fcr einen solchen Einsatzzweck sollte man dann <a href=\"http:\/\/www.manpagez.com\/man\/1\/screen\/\" target=\"_blank\">screen<\/a> f\u00fcr den Start im Hintergrund nutzen &#8211; oder mit <a href=\"http:\/\/www.manpagez.com\/man\/1\/nohup\/\" target=\"_blank\">nohup<\/a> arbeiten, vor allem aber die Namensaufl\u00f6sung in den Griff bekommen und so evtl. um den Apache-Proxy rumkommen. Ob man hierzu etherpad aus den Quellen selbst kompilieren muss &#8211; das will ich heute nach dem ganzen Gefrickel gar nicht wissen.<\/p>\n<p>Quellen, Ideen und vor allem Probleml\u00f6sungen gibt es hier:<\/p>\n<p><a href=\"http:\/\/oceanobservatories.org\/spaces\/display\/~gadavis\/Etherpad+Migration\" target=\"_blank\">http:\/\/oceanobservatories.org\/spaces\/display\/~gadavis\/Etherpad+Migration<\/a><\/p>\n<p><a href=\"http:\/\/mclear.co.uk\/2010\/03\/10\/installing-etherpad-on-debian\/\" target=\"_blank\">http:\/\/mclear.co.uk\/2010\/03\/10\/installing-etherpad-on-debian\/<\/a><\/p>\n<p>Diesen Text habe ich auch &#8211; etwas gegl\u00e4ttet &#8211; auf dem LFB ver\u00f6ffentlicht: <a href=\"http:\/\/lehrerfortbildung-bw.de\/werkstatt\/sonstige\/txtimnetz\/1_ethpad.htm\" target=\"_blank\">http:\/\/lehrerfortbildung-bw.de\/werkstatt\/sonstige\/txtimnetz\/1_ethpad.htm<\/a><\/p>\n<p>Siehe hierzu auch: <a href=\"http:\/\/www.bdjl.de\/localhost\/?p=1489\">http:\/\/www.bdjl.de\/localhost\/?p=1489<\/a> (Update auf etherpad 1.1)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die c&#8217;t von heute hat einen Artikel zur Installation von etherpad auf debianoiden Linuxen ver\u00f6ffentlicht, den ich gerade in einer VM unter Debian 5 nachzuvollziehen versuche. Der Artikel scheint jedoch f\u00fcr Ubuntu geschrieben worden zu sein. Unter Debian 5 will es wie von der c&#8217;t beschrieben einfach nicht klappen &#8211; und aus diesem Grund hier [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,5,10],"tags":[20],"class_list":["post-1104","post","type-post","status-publish","format-standard","hentry","category-lfb","category-linux","category-schule","tag-etherpad"],"_links":{"self":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/1104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1104"}],"version-history":[{"count":43,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/1104\/revisions"}],"predecessor-version":[{"id":1492,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/1104\/revisions\/1492"}],"wp:attachment":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}