Opal für Linux/Unix
Hier gibt es fertige Pakete für die gängigsten Linux-Distributionen und andere Unix-Derivate. Wenn ihr Linux verwenden wollt und falls ihr Linux noch nicht auf eurem Rechner installiert habt, könnt ihr einfach Opalix verwenden, es liefert euch eine komplette Linuxumgebung, ohne es dauerhaft installieren zu müssen.
Falls ihr eine Distribution einsetzt, die hier nicht aufgeführt ist, und gerne ein Paket kompilieren würdet, euch aber nicht so ganz sicher seid, wie das geht, dann wendet euch an . Wir helfen euch gerne!
Allerdings muss man leider auch anmerken, dass der Opal-Buildprozess sehr schlecht organisiert ist. So wird z.B. nicht zwischen Kompilations- und Installationsphase unterschieden und die generierten Scripte unterstützen DESTDIR nicht, was aber eigentlich eine zwingende Voraussetzung für ein vernünftiges Packaging in den Distributionen ist. Diese Probleme machen es nicht einfach, Pakete zu erstellen.
Hinweis: Pünktlich zum Wintersemester 2011/2012 erschien die Opal Version 2.4, die neben einigen Bugfixes unter anderem expliziten Support für MacOS X bringt. Wir (die Opal-Maintainer) raten aus diesem Grund dringend von der Installation älterer Versionen ab. Wenn ihr hier keine aktuellen Opal-Pakete für eure Distribution findet, zieht bitte die Installation aus den Quellen den alten Paketen vor. -- Martin
Inhaltsverzeichnis
Hinweis zum Selber-Kompilieren
Die Grundlegende Vorgehensweise zur Installation von Opal aus den Quellen ist hier zu finden.
SuSE
Leider gibt es zur Zeit keine aktuellen Pakete für SuSE.
Fedora
Leider gibt es zur Zeit keine aktuellen Pakete für Fedora.
Debian
Leider gibt es zur Zeit keine aktuellen Pakete für Debian.
Ubuntu
Paket Installation
Ein Ubuntu-Paket ist in Arbeit, Anleitung folgt.
Installation aus den Quellen
Opal lässt sich auch ohne größeren Aufwand aus den Quellen installieren. Hierzu werden die Pakete für flex
und die Entwicklerversionen für readline
und Tcl/Tk
benötigt. Ab Version 10.04 lassen sich diese Pakete mit folgendem Aufruf installieren:
% sudo apt-get install flex libreadline6-dev tcl8.5-dev tk8.5-dev
Allerdings reichen diese Pakete häufig nicht aus. Ist das der Fall, hilft es mit folgendem Befehl auch diese Pakete zu installieren:
% sudo apt-get install tclex tcl8.4-dev tclx8.4 tclx8.4-dev m4 flex tk tk8.4 libreadline6-dev libncurses5-dev tclreadline x11proto-xext-dev x11proto-kb-dev x11proto-render-dev libxrender-dev libxdmcp-dev libfontconfig1-dev xtrans-dev x11proto-core-dev x11proto-scrnsaver-dev libxext-dev zlib1g-dev x11proto-input-dev libfreetype6-dev tcl8.5-dev libpthread-stubs0-dev libxau-dev libpthread-stubs0 tcl8.5 libexpat1-dev tk8.5 tk8.5-dev libxft-dev libx11-dev libxcb1-dev libxss-dev
Anschließend lässt sich Opal wie folgt installieren:
% wget https://projects.uebb.tu-berlin.de/opal/trac/raw-attachment/wiki/OCS/ocs-2.4.tar.gz % tar -xzf ocs-2.4.tar.gz % cd ocs-2.4/ % ./configure % sudo make install
In den ersten beiden Zeilen werden die Opal-Quellen von der Projektseite geladen und entpackt. Zeile drei wechselt in das die Opal-Quellen enthaltende Verzeichnis. Anschließend wird Opal für euer System konfiguriert. In der letzten Zeile wird Opal schließlich nach /opt/ocs-2.4
installiert, hierzu werden root-Rechte benötigt.
Zu guter Letzt solltet ihr die eben installierte Opal-Version noch für euren Benutzer einrichten, indem ihr den Eintrag
export PATH=/opt/ocs-2.4/bin:$PATH
zur .profile
in eurem home Verzeichnis hinzufügt.
Gentoo
Ein Ebuild gibt's aktuell im Overlay rbu betagarden:
# emerge -av layman # (Dort den Anweisungen folgen, um Layman auch einzurichten) # layman -f # layman -a betagarden # emerge dev-lang/opal
Da das Ebuild maskiert ist, sind an dieser Stelle eventuell noch weitere Schritte nötig; die Installation maskierter Ebuilds ist hier erklärt: Nutzung maskierter Pakete.
Seit Version 2.3n unterstützt Opal nun offiziell auch 64-Bit-Umgebungen.
FreeBSD
Es gibt einen FreeBSD-Port um OCS kompilieren zu können:
$ su # cd /usr/ports/lang/ocs # make install clean
Alternativ kann man sich ein bereits kompiliertes Paket installieren
$ su # pkg_add -r ocs
Sowohl Kompilierer als auch Interpreter funktionieren einwandfrei.
MacOS X
Seit Version 2.4 lässt sich Opal auch unter MacOS X installieren. Alle hierzu benötigten Tools sind in Apples hauseigenem Developer Tools enthalten, die ihr von der Software DVD oder aus dem Internet enthaltet. Um das Opal-Dokumentationssystem DOSFOP nutzen zu können, ist zusätzlich eine Tex-Installation notwendig.
Pakete
Opal-Pakete für MacOS X 10.6.8 (Snow Leopard) und MacOS X 10.7 (Lion) sind hier zu finden.
Die Installation ist im Grunde einfach, es gibt aber ein paar Fallen (bei mir zumindest, Mac OS 10.7.2).
Workaround:
- Ihr müsst (als root, ggf.
sudo
voranstellen) ein paar Symlinks setzen, daoasys
sonst ein paar Executables nicht findet:ln -s /Developer/usr/bin/gcc /usr/local/bin/gcc
ln -s /Developer/usr/bin/nm /usr/bin/nm
- (den ersten Pfad jeweils entsprechend anpassen, je nachdem, wo ihr die Tools installiert habt)
- (vorher evtl.
mkdir /usr/local/bin
, falls es das Directory nicht geben sollte)
Danach lief bei mir oasys
ohne Fehler.
Installation aus den Quellen
Für eine Installation aus den Quellen sind folgende Schritte notwendig:
1.) Den Opal-Quellcode hier herunter laden und entpacken.
2.) Opal installieren (wobei ocs-2.4
das Verzeichnis ist, in dem der entpackte Quellcode liegt):
% cd ocs-2.4 % ./configure % sudo make install
Standardmäßig wird Opal im Verzeichnis /opt/ocs-2.4
installiert. Um dies zu ändern, ist der ./configure
Aufruf wie folgt anzupassen:
% ./configure --prefix=Pfad
Opals Dokumentationssystem DOSFOP (Tex-Installation erforderlich) wird durch folgenden ./configure
Aufruf mit installiert:
% ./configure --enable-dosfop
Zu guter Letzt solltet ihr noch das Verzeichnis, in dem die Opal Binaries liegen, in euren Pfad aufnehmen, indem ihr
export PATH=/opt/ocs-2.4/bin:$PATH
in eure .profile
Datei hinzufügt.
Bekannte Probleme/Lösungen
C Compiler fehlt
Symptom: Ihr erhaltet eine Fehlermeldung, die ungefähr so aussieht:
checking Binom.sign checking Binom.impl compiling Binom.impl /opt/ocs/lib/oasys/ccompiler: line 17: /usr/local/bin/gcc: No such file or directory /opt/ocs/lib/oasys/ccompiler: line 17: exec: /usr/local/bin/gcc: cannot execute: No such file or directory ERROR [C compiler]: /opt/ocs/lib/oasys/ccompiler exited abnormally aborted
Auf einigen neueren Systemen (Ubuntu 5.10, SuSE 10.0) kommt es zu noch nicht genau geklärten Problemen von OCS mit der Gnu Compiler Collection (gcc). OCS benötigt den C Compiler (ggf. zusätzlich installiern) und kann ihn dennoch nicht finden, so dass es zu diesem Fehler kommt. Wir haben noch nicht herausgefunden, woher der Fehler genau rührt, da er nicht auf allen Systemen reproduzierbar ist, aber es gibt einen Workaround.
Lösung/Workaround: Das Paket gcc installieren. Eventuell muss noch ein Symlink gesetzt werden, damit Opal den Compiler auch findet.
ln -s `which gcc` /usr/local/bin/gcc # als root
2.Workaround: einfach mal im Homeverzeichnis die Dateien (*.impl und *.sign speichern) und dort dann "oasys" ausführen.
Libraries fehlen
$ oasys oasys version 1.1e (ocs version 2.3j), (c) 1989-2001 The OPAL Group, TU Berlin > a WhatsThat.sign loading WhatsThat.sign loading WhatsThat.impl >f WhatsThat.impl WhatsThat.impl>e WhatsThat(2) starting evaluator process /usr/bin/ld: crti.o: No such file: No such file or directory collect2: ld returned 1 exit status evaluator: cannot create transient shared object `/tmp/file7HXogh.so' for `./OCS/WhatsThat.o' connection lost
Lösung: Paket build-essential installieren, z.B. mittels
apt-get install build-essential
Falls ihr auf eine Fehlermeldung stoßt, dass einige libs fehlen, aber ihr wisst, dass diese installiert sind, schaut einmal auf die Versionsnummern. Da die Versionsnummer zum Teil ein Bestandteil des Namens ist, fand oasys zB bei mir die gewünschte lib nicht, weil ich bereits eine neuere Version installiert hatte. Abhilfe schafft dann ein mehr oder weniger dreckiger hack: Sucht das Verzeichnis in dem sich die Lib befindet.
ln -s <eure installierte neue lib> <die alte lib nach der opal sucht>
erstellt einen Link mit dem Namen der lib die oasys sucht und zeigt auf die neue Version der lib. Somit kann oasys, wenn es die Alte versucht anzusprechen mit der Neuen arbeiten. Ich kann nicht versprechen, dass dies immer klappt, aber einen Versuch ist es Wert. Und nicht vergessen! Diese Links sofort löschen, wenn es nicht klappt! Ansonsten müllt ihr euch euren Rechner zu ;)