octave4mac.featured

GNU Octave 3 auf Mac OS X El-Capitan installieren

GNU Octave auf einem Macintosh zu installieren ist im Vergleich zu Microsoft Windows® oder GNU/Linux nicht durch die Ausführung eines Installers getan.

Fertige App Bundles sind kaum verfügbar, veraltet oder laufen nicht zuverlässig. Die Installation über Paketmanager, wie MacPorts oder Home Brew laufen oft nicht out-of-the-box.

Dieses How-To beschreibt, wie man Octave 3.8.2 über MacPorts (Version 2.3.4) auf El Capitan installiert, Fallstricke und Bugs umgeht und Octave richtig konfiguriert.

Aktuell unterstützt MacPorts 2.3.4 GNU Octave 4.0.3. Damit ist dieses How-TO obsolet. Siehe: GNU Octave 4 auf Mac OS X El-Capitan installieren

In der englischsprachigen Octave Wiki habe ich die nachfolgende Hinweise in einer Kurzfassung bereits eingepflegt. Hier findest du das ausführliche How-To.

Zuallererst, nimm dir viel Zeit. Die Installation dauert sehr lange und die benötigten Kompilierungen können schon mal etliche Stunden dauern.

Über MacPorts

MacPorts ist ein Paketmanager, der sich an BSD-UNIX orientiert. Es stellt Pakete, sogenannte Ports, zur Verfügung. Diese enthalten (UNIX) Programme, die Apple nicht mitliefert.  Diese Ports enthalten „nur“ die Quellcodes der Programme. D.h. nach dem Download müssen sie noch kompiliert (in Maschinensprache übersetzt) werden. Das dauert länger, als die Installation eines bereits kompilierten App Bundles. Aber keine Angst: Diese Kompilierungen werden semi-automatisch mit ein paar Befehlen durchgeführt.

MacPorts selbst und alle Ports werden im Verzeichnis /opt/local installiert, das aber über den Finder nicht direkt sichtbar ist. Bei Programmen mit graphischer Oberfläche werden aber i.d.R. App Bundles im Ordner „Programme“ abgelegt, die den Aufruf dieser Programme stark erleichtern.

MacPorts installieren

  1. Wir brauchen zuerst Apples „Xcode Developer Tools“. Seit OS X 10.9 (Mavericks) muss man Xcode nicht mehr vorher installieren, wenn man die „Xcode Developer Tools“ benötigt. Öffne das Terminal (Ordner Programme|Dienstprogramme) und gebe folgenden Befehl ein:
    xcode-select --install

    und folge den Anweisungen, um die Tools zu installieren . Dann noch

    sudo xcodebuild -license

    eingeben und mit „agree“ und ENTER bestätigen.

  2. Downloade  jetzt MacPorts für deine Mac OS X-Version und führe den PKG-Installer aus.
  3. MacPorts befindet sich jetzt auf deinem System.

Den „Octave“ Port installieren

Hast du schon erfolglos versucht Octave mit MacPorts zu installieren?  Wahrscheinlich ist die Installation einiger Ports (vornehmlich „atlas“ und „octave“ selbst) gescheitert.  Bevor du Octave nochmal installierst, solltest du vorher aufräumen, um Probleme zu vermeiden. Im Terminal:

sudo port clean atlas
sudo port clean octave

eingeben. Startest du von Grund auf, kannst du die obigen Befehle überspringen. Dann kann es jetzt sauber weitergehen:

  1. Der Port „atlas“ – eine wichtige Mathematik Bibliothek – macht bei der Installation Probleme, da er sich nicht fehlerfrei mit Apples C-Compiler „clang“ kompilieren lässt. Man muss ihn deshalb mit der Variante „gcc5“ kompilieren. Damit „atlas“ bei der Installation von Octave keinen Ärger macht, installieren wir diesen Port vorher mit der nötigen Variante.  Im Terminal folgendes eingeben:
    sudo port install atlas +gcc5

    ACHTUNG: Die Installation/Kompilierung von „atlas“ kann auch auf moderner Hardware etliche Stunden dauern. Am besten den obigen Befehl über Nacht ausführen lassen.

  2. Eine weitere Abhängigkeit von Octave kann (muss aber nicht) später bei der Anwendung von Octave Probleme bereiten: „arpack“. Das ist eine weitere Mathematik-Bibliothek zur Lösung von Eigenwertproblemen in dünn besetzten Matrices. Standardmäßig wird sie – wahrscheinlich aus (Kompilier-)Zeitgründen – mit Apples accelerate Variante kompiliert. Diese enthält aber Fehler. Besser ist es „arpack“ mit „atlas“ zu kompilieren:
    sudo port install arpack -accelerate+atlas

    Dieser Befehl könnte auch noch nachträglich (nach der Installation von Octave) ausgeführt werden.

  3. Jetzt sind alle Vorbereitungen abgeschlossen und du kannst Octave selbst installieren. Es gibt mehrere Varianten. Um die neue graphische Benutzeroberfläche (GUI) zu nutzen und die Java Funktionen zu implementieren, gebe folgenden Befehl ins Terminal ein:
    sudo port install octave +qtgui+gui+java

    Auch die Installation von Octave kann etwas dauern, wenn auch deutlich weniger als „atlas“.

    Wenn du für einige Funktionen noch „metis“ benötigst, dann:

    sudo port install octave +qtgui+gui+java+metis

    Metis“ hat aber eine andere Lizenz als Octave und darf deshalb nicht zusammen weitergegeben werden, aber für eine eigene Installation gibt es keine Lizenzprobleme.

  4. Du findest jetzt ein Octave App Bundle im Programme Ordner und im Launchpad.octave-solverEs ist aber auch möglich die Komandozeilenversion von Octave im Terminal mit Eingaben von octave zu starten.octave-cli

Octave konfigurieren

Leider stürzt Octave beim Plotten ab. Die standardmäßig installierte FLTK-Bibliothek zum Plotten arbeitet fehlerhaft.. Man kann aber auch das mitinstallierte Gnuplot nutzen.

In Octave einfach die beiden Befehle:

setenv("GNUTERM","wxt");
graphics_toolkit("gnuplot");

eingeben und danach plotten.  Gib z.B.

sombrero()

octave-plot

in Octave ein.

Um das Grafikfenster und Gnuplot ordnungsgemäß zu schließen, verwende in Octave den Befehl

close()

Der beendet auch gleich Gnuplot. Wenn du das Grafikfenster per Maus schließt, bleibt die Gnuplot-Instanz im Speicher (und auch im Dock).

Damit man die Befehle nicht ständig eingeben muss, wenn du plotten willst, kannst du diese auch in eine von Octaves Startdateien eintragen: Z.B in ~/.octaverc in deinem Home-Verzeichnis. Du musst aber i.d.R. diese Datei anlegen. Achte auf den führenden Punkt vor dem Dateinamen. Da der Finder solche „Dot“-Dateien (sind im Finder und im Terminal unsichtbar) nicht anlegen will, muss man das Terminal bemühen. Mit

nano ~/.octaverc

startet den Editor „nano“. Dann:

setenv("GNUTERM","wxt");
graphics_toolkit("gnuplot");

in die Datei eintragen und mit „ctrl-x“,  „y“ und ENTER  die Datei .octaverc speichern und den Editor „nano“ beenden.

Näheres zu Startdateien findest du in der Octave Dokumentation unter Startup Files.

Jetzt Octave starten und plotten.

Für die Java-Funktionalität (*dlg Dialog-Funktionen, etc) ist noch eine Java Runtime (JRE) zu installieren. Du findest sie bei Oracle.

Besonderheiten

Nach dem ersten Start fallen folgende Besonderheiten – meist optischer Natur – auf:

  • Octave bekommt nach dem Start nicht den Fokus und startet unter dem aktuellen Fenster. Es muss erst mit Klick auf das Docksymbol oder das Fenster nach oben geholt werden.
  • Die Schrift des Befehlsfensters ist auch auf meinem Nicht-Retina Macbook zu klein. Das kann unter „Datei|Einstellungen…|Befehlsfenster“ korrigiert werden.
  • Nach Beenden des Einstellungsdialogs erscheint in der Befehlszeile eine Warnung: octave-gui[482:9528] modalSession has been exited prematurely – check for a reentrant call to endModalSession:, die erst mit ENTER bestätigt werden muss, bis der Octave-Prompt „>>“ erscheint.
  • Labels in Buttons, im Editor-Submenü und anderen Widgets ist vertikal nicht zentriert. Das ist aber eher ein kosmetisches Problem (Screenshot).
  • Der Befehl cd wird in der Startdatei ~/.octaverc scheinbar ignoriert. Das Einstellen eines Startverzeichnisses ist bei mir so nicht möglich. Andere Befehle werden aber ausgeführt.

Im Vergleich zur GNU/Linux- oder sogar der Windows-Version wirkt Octave auf Mac OS X ein wenig holprig, lässt sich aber sonst gut bedienen.

Upgrade zu Version 4

14. August 2016: Um Probleme beim Upgrade zu umgegen, siehe: Octave 4 Upgrade schlägt unter MacPorts nach „port upgrade outdated“ fehl.

 

Bildnachweis

All images in this article are in the Public Domain (CC0)

4 Gedanken zu „GNU Octave 3 auf Mac OS X El-Capitan installieren“

  1. If you’re running Yosemite or El Capitan, when you run Octave the first time, you might get a notification saying „you need to install the legacy Java SE 6 runtime.“ You can get that here:

    https://support.apple.com/kb/DL1572?locale=en_US

    I tried Homebrew first via other web tutorials and ran into a lot of problems. Mac Ports worked fine and the process described in this article worked perfectly. Thank you!

  2. Thank you for putting together this page. This was my third install of Octave; the first two times I used the bundle and homebrew respectively. Using the bundle, octave crashed when I tried to use pinv(), and using homebrew, I couldn’t get the graphics to work with El Capitan. Everything seems to be working well!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.