Opal für Linux/Unix: Unterschied zwischen den Versionen
(→FreeBSD) |
(→FreeBSD) |
||
Zeile 159: | Zeile 159: | ||
$ su | $ su | ||
− | # cd /usr | + | # cd /usr/ports/lang/ocs |
− | |||
− | |||
− | |||
# make install clean | # make install clean | ||
Version vom 4. September 2007, 05:04 Uhr
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 opalix@freitagsrunde.org. Wir helfen euch gerne!
Allerdings muss man leider auch anmerken, dass der Opal-Buildprozess sehr schlecht organisiert ist. So wird z.B. nicht zwischen Kompilation- 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.
Inhaltsverzeichnis
Hinweis zum Selber-Kompilieren
Mit aktuellen gcc/glibc-Versionen (>=4.0) kompiliert OPAL <= 2.3j nicht mehr, da eine obsolete Funktion entfernt wurde. Ab Version 2.3k funktioniert es wieder.
Dirk Reckmann und Stephan Frank (ÜBB Gruppe), haben uns einen Patch für die älteren Quellen zum Übersetzen des OCS mit gcc 4.1 zur Verfügung gestellt. Diesen könnt ihr einfach einspielen durch:
cd <OPAL_UNPACK_DIRECTORY>/ocs wget http://opalix.freitagsrunde.org/rpm/patches/CLK_TCK.patch patch -p0 < CLK_TCK.patch
SuSE
Das Paket installiert OPAL nach /opt/ocs
. Damit ihr oasys
und ocs
benutzen könnt, müsst ihr die folgende Zeile in die Datei $HOME/.bashrc
eintragen:
export PATH=/opt/ocs/bin:$PATH
Aktuelle Versionen
Unsere Pakete für aktuelle Versionen von SuSE (siehe auch Bekannte Probleme/Lösungen weiter unten).
- SuSE 10.1: opal-2.3j-1.i386.suse10.1.rpm (Prüfsumme)
- SuSE 10.0: opal-2.3j-1.i386.suse10.0.rpm (Prüfsumme)
Alte Versionen
Zusätzlich zu den Paketen für aktuelle SuSE Versionen gibt es auch noch Pakete für ältere Versionen auf dem Server.
- SuSE 9.2: opal-2.3j-1.i586.suse9.2.rpm (Prüfsumme)
- SuSE 9.1: opal-2.3j-1.i386.rpm (Prüfsumme)
- SuSE 9.0: opal-2.3h-2.i686.suse9.0.rpm (Prüfsumme)
Fedora
Das Paket installiert OPAL nach /opt/ocs
, damit ihr an der Shell die Kommandos benutzen könnt, müsst ihr die folgende Zeile in eure .bashrc
eintragen:
export PATH=/opt/ocs/bin:$PATH
Laut Berichten gibt es Probleme zwischen SELinux und dem Opalinterpreter oasys. Vermutlich hilft hier ein Deaktivieren von SELinux für Opal bzw. das Erstellen von korrekten Regeln.
- Fedora Core 6:
opal-2.3j-1.fc6.i386.rpm (Prüfsumme) Vielen Dank an Dennis Schickhaus. - Fedora Core 5:
opal-2.3k-1.fc5.i386.rpm (Prüfsumme) Vielen Dank an Christoph Höger.
opal-2.3j-1.fc5.i386.rpm (Prüfsumme) Vielen Dank an Dennis Schickhaus. - Fedora Core 3:
opal-2.3j-1.FC-3.i386.rpm (Prüfsumme) Vielen Dank an Christoph Höger.
Andere RPM-basierte Distributionen
- Quellpaket: opal-2.3j-1.src.rpm (Prüfsumme)
Wenn Ihr Opal auf einer anderen RPM-basierten Distribution neukompilieren wollt, könnt Ihr das SRPM-Paket benutzen. Einfach an der Shell
rpmbuild --rebuild --target i386 opal-2.3j-1.src.rpm
ausführen. Ihr benötigt dabei die Pakete tcl-devel
, tk-devel
, xfree86-devel
, flex
und readline-devel
. Wenn ihr neue Pakete baut, wäre es nett, wenn ihr sie hier anderen zur Verfügung stellt. Sagt einfach unter opalix@freitagsrunde.org Bescheid, wo sie zu finden sind.
Alternativ könnt ihr auch das Paket komplett neu aus den Sourcen erstellen. Dazu benötigt ihr das so genannte spec-file. Falls ihr Fragen habt, wie ihr damit ein Paket kompiliert, wendet euch einfach an opalix@freitagsrunde.org
- spec file: opal-2.3j-1.spec
Debian
Das Paket für Debian enthält die aktuelle Version 2.3j.
Es gibt ein apt-get
Repository, das man mit folgenden Zeilen in der Datei /etc/apt/sources.list einstellen kann:
deb http://opalix.freitagsrunde.org/debian-rep ./ deb-src http://opalix.freitagsrunde.org/debian-rep ./
Das Package heißt ocs und lässt sich mit
sudo apt-get install ocs
installieren. Vielen Dank an Marco Ziech für seine Zeit und Mühe, das Paket und Repository zu erstellen!
Ubuntu
Prinzipiell könnt ihr das Paket für Debian unter Ubuntu einsetzen. In Einzelfällen kann es zu Problemen kommen, die ein Kompilieren aus den Quellen erforderlich machen. Generell ist das Verwenden des Pakets vorzuziehen, da das Selbst-Kompilieren nicht immer einfach ist. In jedem Fall ist es erforderlich, das Paket "build-essential" installiert zu haben.
- 6.10 (Edgy Eft): Das Paket für Debian, bezogen über das Repository, funktioniert gut. Das Selbstkompilieren der Version 2.3k verlief fehlerlos.
- 6.06 (Dapper Drake): Das Paket für Debian funktioniert definitv unter Dapper Drake. Es ist dem Selbstkompilieren vorzuziehen, da es mehrere Berichte über Compiler-Inkompatibilitäten unter Dapper Drake gibt.
- 5.10 (Breezy Badger): Da es anscheinend Probleme mit den Paketen von Debian unter Ubuntu 5.10 gibt, ist hier anscheinend eine Installationen aus den Quellen nötig. Nähere Informationen findet ihr auf der Seite Opal unter Ubuntu kompilieren.
Paket Installation
Es gibt zwei Möglichkeiten, dass Paket für Debian zu Installieren.
Entweder man lädt das Paket manuell herunter und installiert es mit dpkg:
wget http://opalix.freitagsrunde.org/debian-rep/ocs_2.3j-1_i386.deb dpkg -i ocs_2.3j-1_i386.deb
Alternativ kann man wie bei Debian das Repository
deb http://opalix.freitagsrunde.org/debian-rep ./ deb-src http://opalix.freitagsrunde.org/debian-rep ./
hinzufügen.
Per GUI:
- Startleiste -> System -> Systemverwaltung -> Synaptic-Paketverwaltung starte
- In der Synaptic-Paketverwaltung im Menu Einstellungen -> Paketquellen
- Im Paketquellen-Fenster auf hinzufügen und benutzerdefiniert anklicken
- Repository-Zeilen nacheinadner eintragen und FERTIG
Zu Fuß:
- Datei /etc/apt/source.list im Editor öffnen
- Repository-Zeilen (siehe oben) in die Datei eintragen und FERTIG
Nach diesem Prozedere muß Opal noch installiert werden:
user@ubuntulinux > sudo apt-get install ocs
Vielleicht muß vorher noch ein apt-get update gemacht werden:
user@ubuntulinux > sudo apt-get update
FERTIG.
Sollte es Probleme geben, stellt bitte sicher, dass die zur Funktion notwendigen Pakete installiert sind:
apt-get install gcc make libc6-dev tk8.3-dev libreadline4-dev gcc flex
Gentoo
Ebuilds von Opal und der Opal-Dokumentation finden sich unter [1].
(Alternativ gibt es im Gentoo-Bugzilla ein anderes Ebuild für den Opal-Compiler. Dieser Link zeigt euch, wie man es installiert.)
Hinweis: Keines der Gentoo Ebuilds funktioniert im Moment, da das Opal-Makesystem die Sandbox verletzt.
Hinweise zur Installation des Opal-Ebuilds Hierbei muss das Gentoo-System angepasst werden.
Innerhalb von /etc/make.conf
ist der Eintrag der PORTDIR_OVERLAY
-Variable nötig. Dafür ist ein eigenes Verzeichnis zu erstellen (im Allgemeinen und im Weiteren /usr/local/portage
) und der Variable zuzuordnen:
mkdir -m 755 /usr/local/portage echo 'PORTDIR_OVERLAY="/usr/local/portage"' >> /etc/make.conf
Unterhalb des Verzeichnisses /usr/local/portage
das Verzeichnis dev-lang
und darin die Verzeichnisse opal
und opaldoc
anlegen und dann in diese beiden Verzeichnisse die nötigen Ebuilds kopieren:
mkdir -m 755 /usr/local/portage/dev-lang{,/opal,/opaldoc} cp opal-2.3i.ebuild /usr/local/portage/dev-lang/opal/ cp opaldoc-2.3i.ebuild /usr/local/portage/dev-lang/opaldoc/
Da beide Ebuilds maskiert sind, sind an dieser Stelle eventuell noch weitere Schritte nötig; die Installation maskierter Ebuilds ist hier sehr gut erklärt: Maskierte Ebuilds.
Jetzt einfach:
emerge opal opaldoc
Um die neue Version von Opal (2.3j), die auch mit den neuen binutils klarkommt, zu emergen, sind folgende Schritte nötig:
cd /usr/local/portage/dev-lang/opal/ cp opal-2.3i.ebuild opal-2.3j.ebuild ebuild opal-2.3j.ebuild digest emerge opal
FreeBSD
Es gibt einen FreeBSD-Port um OCS kompilieren zu können:
$ su # cd /usr/ports/lang/ocs # make install clean
Sowohl Kompilierer als auch Interpreter funktionieren einwandfrei.
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
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