[[Getestet(edgy)]] [[Fortgeschritten]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] * [2]: [:Paketquellen freischalten: Bearbeiten von Paketquellen] * [3]: [:Terminal: Ein Terminal öffnen] (optional) * [4]: [:Editor: Einen Editor öffnen] (optional) * [5]: [:Programme kompilieren: Pakete aus dem Quellcode erstellen] (optional) * [6]: [:Paketinstallation_DEB: Ein einzelnes Paket installieren] (optional) }}} [http://www.erlang.org/ Erlang] {en} ist eine [:Programmiersprache:], die hauptsächlich bei Anwendungen im Bereich Telekommunikation genutzt wird. Ihre Stärke ist die parallele Verarbeitung von Programmlogik. Es gibt im Desktop-Bereich nicht viele Anwendungen, die auf dieser Sprache basieren. Prominente Gegenbeispiele sind der Jabber-Server [:ejabberd:] und [http://www.wings3d.com/ wings3d] {en} . Mehr Informationen findet man in der [http://de.wikipedia.org/wiki/Erlang_%28Programmiersprache%29 Wikipedia] {de} . = Installation = Möchte man Erlang nutzen, muss man das Paket * '''erlang''' (''universe'', [2]) installieren [1]. Für weitere Informationen sind noch folgende Pakete geeignet: * '''erlang-doc-html''' (''universe'') - HTML-Dokumentation * '''erlang-manpages''' (''universe'') - [:Shell/man:Manpages] {{{#!Warnung Einige Manpages sind zumindest unter [:Dapper Drake:] leider defekt und drucken nur die Meldung ''warning: can't find numbered character 160'' aus. }}} [[Anchor(Kompilieren)]] = Aus dem Quellcode erstellen = Unter [:Edgy Eft:] gibt es einen Fehler mit der Verschlüsselung ([https://launchpad.net/ubuntu/+source/erlang/+bug/68163 Bugreport auf Launchpad] {en} ), weswegen z.B. [:ejabberd:] nicht korrekt funktioniert. In dem Fall muss man das Paket aus dem Quellcode neu erstellen. == Vorbereitung == Als erstes braucht man neben den unter [5] genannten Paketen (Debian-Methode) eine Reihe weiterer Entwickler-Pakete inkl. Abhängigkeiten [1]: * '''automake1.9''' * '''debhelper''' * '''dpatch''' * '''libncurses5-dev''' * '''libssl-dev''' * '''unixodbc-dev''' [[Pakete(automake1.9,debhelper,dpatch,libncurses5-dev,libssl-dev,unixodbc-dev)]] Diese kann man hinterher allesamt wieder deinstallieren, wenn man möchte. Insbesondere auf einem Server ohne grafische Oberfläche bietet sich an, zumindest das Paket '''unixodbc-dev''' inkl. der davon abhängigen zahlreichen X11-Bibliotheken wieder zu entfernen. Außerdem benötigt man noch die Pakete * '''libssl0.9.8''' * '''unixodbc''' [[Pakete(libssl0.9.8,unixodbc)]] die man auch für den späteren Betrieb des Servers braucht und nicht entfernen darf. == Paketbau == Als erstes benötigt man das Quellpaket von '''erlang'''. Dafür müssen die Quellpakete '''deb-src''' für die Sektion ''universe'' freigeschaltet sein [2]. Mittels [3] {{{#!Befehl apt-get source erlang }}} lädt man sich den Quellcode herunter. Dann wechselt man in den automatisch erstellten Ordner '''erlang-11.b.1''' und passt dort die Datei '''debian/rules''' an [4], indem man die Zeile 39 wie folgt abändert: {{{#!Text CFLAGS=-g -O2 -fno-stack-protector }}} Anschließend benutzt man folgenden einzelnen Befehl, um alles zu kompilieren [5] und die Pakete zu erzeugen: {{{#!Befehl dpkg-buildpackage -rfakeroot }}} Das kann auf einem etwas älteren Rechner schnell mal mehrere Stunden dauern. == Installation == Wenn kein Fehler aufgetreten ist, befinden sich jetzt im übergeordneten Verzeichnis eine Reihe Deb-Pakete, von denen man aber nur zwei benötigt: * '''erlang-base_11.b.1-1_i386.deb''' * '''erlang-nox_11.b.1-1_all.deb''' Diese müssen jetzt installiert [6] und gegen versehentliches Überschreiben aus den Paketquellen geschützt werden, indem ihr Status auf ''hold'' gesetzt wird, je nach verwendetem Apt-Frontend über ["Apt-Pinning"] oder über {{{#!Befehl sudo aptitude hold erlang-base erlang-nox }}} ---- * [:Kategorie/Programmierung:]