Apple hat am 25.09.2017, also zu Beginn dieser Woche, sein neues Betriebssystem veröffentlicht. Einige lieb gewonnene Anwendungen funktionieren seitdem nicht mehr oder wenigstens nicht mehr richtig. So hat bei mir beispielsweise gnuplot verschiedene Fehlermeldungen gebracht. Ich hatte gnuplot ehedem aus dem Repository von MacPorts installiert. Dummerweise ist MacPorts noch nicht auf macOS High Sierra (10.13) eingestellt. Will man gnuplot unter macOS High Sierra installieren, ohne auf die Aktualisierung von MacPorts, HomeBrew und Co. zu warten, muss man selbst Hand anlegen.
Da ich eh vorhatte, nach einem Clean-Install von macOS High Sierra auf die Einbindung großer Repositories zu verzichten, habe ich mich entschieden, die Sache selbst in die Hand zu nehmen und die benötigte Zusatzsoftware, so sie nicht als passende Binärdistribution verfügbar ist, selbst zu compilieren. Gesagt, getan – in die Hände gespuckt und losgelegt.
Im Folgenden beschreibe ich, wie man gnuplot und macOS High Sierra installieren kann, ohne irgendwelche Repositories einzubinden. Selbiges habe ich auch mit enscript, automake, autoconf und anderen erfolgreich durchgeführt. Der Weg zum Erfolg ist prinzipiell immer der gleiche.
Grundsätzliches Vorgehen
Bevor man unter macOS Software aus dem Quellcode heraus installieren kann, muss Xcode mit den zugehörigen Kommandozeilenwerkzeugen installiert sein. Xcode ist im App Store kostenlos erhältlich. Die Kommandozeilen-Werkzeuge installiert man dann mit:
1 |
$ xcode-select --install |
Die Installation von Software aus den Quellen folgt immer dem gleichen Schema:
- Quellcode beschaffen
- Dokumentation lesen, um den Build-Prozess und dessen Abhängigkeiten kennenzulernen
- Abhängigkeiten auflösen
- Software compilieren
- Software installieren
Den Quellcode zu beschaffen ist der einfachste Schritt. Die Websites von GNU und SourceForge sind in der Regel gute Adressen, um fündig zu werden. Hat man das Objekt der Begierde gefunden, heißt es, das Archiv, in welchem es üblicherweise verpackt ist, auszupacken. Regelmäßig finden wir darin eine Datei, die auf den Namen INSTALL
, README
oder ähnlich hört. Darin ist der Übersetzungs- und Installationsprozess beschrieben. Oft finden sich darin auch direkt Hinweise zu eventuell bestehenden Abhängigkeiten, wie beispielsweise erforderlichen Bibliotheken. Fehlen solche Hinweise, bestehen aber dennoch Abhängigkeiten, so erfahren wir diese spätestens beim Compilieren. Wir bekommen dann nämlich entsprechende Warn- oder gar Fehlermeldungen. In solchen Fällen gilt es, die angemahnte Software zu beschaffen und nach dem hier beschriebenen Schema zu installieren. Haben wir es nach endlich langer Zeit geschafft, die von uns begehrte Software erfolgreich zu übersetzen, geht es an die Installation. Ist auch diese erfolgreich abgeschlossen, können wir das Objekt der Begierde nutzen.
Die folgende Beschreibung ist analog für die meisten anderen Software-Installationen anwendbar.
gnuplot unter macOS High Sierra installieren
Bevor wir gnuplot selbst compilieren können, müssen wir uns als Voraussetzung XQuartz und AquaTerm beschaffen und installieren. Beide sind als DMG-Files verfügbar und entsprechend einfach zu installieren.
gnuplot habe ich mir in der aktuellen Version 5.2.0 bei SourceForge beschafft. Hier ist der Link zum entsprechenden SourceForge-Archiv.
Ich habe mich natürlich, sonst würde ich das hier nicht schreiben, für das tar-Archiv, welches die Quellen enthält, entschieden. Dieses wird nun in einem beliebigen Verzeichnis ausgepackt.
1 |
$ tar -xzf gnuplot-5.2.0.tar.gz |
Danach geht man in das Verzeichnis und konfiguriert das Programm. Um AquaTerm nutzen zu können, lautet der Befehl:
1 |
$ ./configure --with-aquaterm |
Hinweis: In der configure-Datei können weitere Optionen nachgesehen werden. Gegebenenfalls erfordern sie jedoch das Installieren zusätzlicher Bibliotheken und/oder Software.
Kommen dabei keine Fehlermeldungen, kann gnuplot übersetzt werden.
1 |
$ make |
Ist auch dieser Schritt erfolgreich ausgeführt, folgt die eigentliche Installation. Hierzu werden Administrationsrechte benötigt.
1 |
$ sudo make install |
Fertig – gnuplot kann jetzt genutzt werden. Damit automatisch AquaTerm genutzt wird, empfiehlt es sich, in der .bash_profile
die Variable GNUTERM
zu exportieren:
1 |
export GNUTERM=aqua |
Der folgende Screenshot zeigt gnuplot im Einsatz.
Wenn es Probleme gibt
Trotz vermeintlich nahezu gleicher Konfiguration hatte ich Probleme gnuplot auf meinem MacBook Pro zu installieren. ./configure
gab die Meldung
1 |
aqua terminal (OS X): no |
aus. Geholfen hat:
1 2 3 |
$ sudo ln -s /Library/Frameworks/AquaTerm.framework/Headers /usr/local/include/AquaTerm $ export CFLAGS='-I/usr/local/include' $ export LDFLAGS='-F/Library/Frameworks' |
Danach konnte ich die Software normal konfigurieren, übersetzen und installieren.
Wer die eingebaute readline-Bibliothek nutzen möchte, kann den Aufruf von ./configure
gerne noch mit der Option
1 |
--with-readline=builtin |
ergänzen.
Fazit
Auf die oben beschriebene Weise habe ich mir noch andere Tools auf meinen Rechner installiert. Zugegeben, bei einigen war der Aufwand etwas größer, weil erst noch andere Dinge installiert sein wollten. Insgesamt war es jedoch nicht schwierig. Und, und das ist für mich das Entscheidende: Ich habe jetzt nur die Software installiert, die ich benötige und nutze. Ich habe mir nicht die Modifikationen und sonstigen Dinge eingehandelt, die mit der Einbindung von großen Repositories einhergehen. MacPorts & Co. sind tolle Projekte, es geht aber auch ohne. Eine eigene Installation ist schlanker und last but not least: So weiß man, was man hat, was man auf seinem Rechner bewusst installiert hat.
Karsten Brodmann
Vielen Dank!
Beste Anleitung die ich bisher gefunden habe – endlich installiere ich mal NUR gnuplot.
Toll! – Es freut mich, wenn ich Dir habe helfen können.
Okay.. klassischer „fast 2 Uhr“-Moment: hast Du eine Ahnung wie ich gnuplot jetzt noch dazu bringe mit PDF-Dateien auszugeben?
Vielen Dank schonmal im Voraus.
Hi Marvin,
das ist nun etwas komplizierter. Da musst Du noch einen ganzen Satz weiterer Bibliotheken installieren.
./configure
gibt Dir bei dessen Ausführung aus, was für welches Feature benötigt wird.Ein einfacher Workaround ist folgender:
1. Ein Shell-Skript dieser o.ä. Form:
#!/bin/bash
bn=
basename $1 .plot
gnuplot $bn.plot
epstopdf temp.ps
pdfcrop temp.pdf
mv temp-crop.pdf $bn.pdf
rm temp.ps temp.pdf
2. Ein Plot-File, z.B.:
set term postscript eps enhanced color
set output „temp.ps“
plot sin(x)
Das kannst Du dann, wenn Dein Shell-Skript
pdfgplot
heißen sollte, mit:$ pdfgplot plotdateiname.plot
aufrufen. Schon hast Du ein PDF.
pdfcrop
ist bei mir mit MacTeX auf den Rechner gekommen. Damit werden überflüssige Ränder abgeschnitten.Ich benutze gnuplot nicht so häufig. Mir reicht dessen Grundausstattung. Willst Du mehr, musst Du mehr installieren. – Das ist der Spagat zwischen selbst kompilieren und fertige Distris verwenden.
Hallo.
Vielen Dank für die Anleitung. Ich bin relativ neu auf MacOs (Mojave) auf einem 2018er MacBook Pro 13 TB und versuche nun Gnuplot mit Aquaterm zu installieren, was mir bis jetzt noch nicht gelungen ist.
Ich habe alles so gemacht wie beschrieben. Leider kommt dann bei ./configure auch Aquaterm no
Ich habe dann die zusätzlichen Zeilen eingeben und es folgte:
/usr/local/include/AquaTerm: No such file or directory
Tatsächlich gibt es diesen Ordner nicht. Ich konnte auch keinen alternativen Pfad finden. Irgendeinen Tipp, wie es es zum Laufen bringen könnte?
Ich wäre über jeden Tipp dankbar.
Grüße.
Hi Markus,
der Grund, weshalb es bei Dir nicht klappt, ist vermutlich recht einfach. Du hast AquaTerm nicht installiert, nehme ich an. Das musst Du vorher freilich tun. Du bekommst es hier:
https://sourceforge.net/projects/aquaterm/files/AquaTerm/v1.1.1/
Auch XQuartz sollte installiert sein, um ein X11-Terminal verwenden zu können. Das bekommst Du hier:
https://www.xquartz.org
Hast Du diese Pakete installiert, sollte alles funktionieren. Steht so allerdings auch im Beitrag. Vermutlich hast Du das bloß überlesen. – Kann passieren 😉
Alles Gute
Karsten
Danke für die schnelle Antwort. Ich habe alles wie beschrieben installiert. Ich habe deinen Artikel auch mehrmals gelesen um nichts zu übersehen. Funktionieren tut es leider nicht. Den Ordner in Frameworks habe ich gefunden, dieser liegt nicht in meinem Folder sondern auf root ebene. Da ich dort den Eintrag Aquaterm gefunden habe, gehe ich davon aus, dass die Installation geklappt hat. Ich habe Aquaterm auch schon mehrmal installiert. X11 auch.
Der Ordner /usr/local/include/AquaTerm hingegen existiert nicht.
Grüße,
Markus
Ne, den gibt es standardmäßig auch nicht. Der entsteht erst durch den Softlink auf
/Library/Frameworks/AquaTerm.framework/Headers
Hast Du den gesetzt? Gegebenenfalls musst Du den freilich an Deine Gegebenheiten anpassen und den Ordner verwenden, der bei Dir besteht. Dort befinden sich die Dateien
AQTAdapter.h
undaquaterm.h
Die werden für die Übersetzung benötigt und ohne den Softlink eventuell nicht gefunden. So war es bei meinem MacBook. Sie wurden unter
/usr/local/include/AquaTerm
gesucht, weshalb ich den Softlink eingerichtet habe, der eben auf das oben genannte Verzeichnis verweist.
Karsten
Sorry und Danke für deine Geduld. Bin ein wenig eingerostet. Habe früher viel mit Linux gearbeitet. Leider ist offensichtlich nicht mehr viel da.
Mein Versuch: Ordner /usr/local/include/AquaTerm manuell erstellt und dann deine Befehle ausgeführt.
$ sudo ln -s /Library/Frameworks/AquaTerm.framework/Headers /usr/local/include/AquaTerm
$ CFLAGS=‘-I/usr/local/include‘ LDFLAGS=‘-F/Library/Frameworks‘
Es kam keine Fehlermeldung. Aquaterm und Gnuplot funktionieren immer noch nicht. Ich bin nochmal deine Installationsanleitung durchgegangen. Kein Erfolg.
Nö, nö,
/usr/local/include/AquaTerm
wird NICHT mit mkdir manuell erstellt. Er ist das Ergebnis von
sudo ln -s /Library/Frameworks/AquaTerm.framework/Headers /usr/local/include/AquaTerm
Wenn Du den Ordner vorher manuell anlegst wird darin ein Headers-Verzeichnis erstellt. Machst Du es so, wie ich es beschrieben habe, also ohne vorheriges anlegen des Ordners, findest Du direkt die benötigten Header-Dateien darin.
Lösche also den Ordner und führe den Softlinkbefehl erneut aus:
sudo rm -r /usr/local/include/AquaTerm
sudo ln -s /Library/Frameworks/AquaTerm.framework/Headers /usr/local/include/AquaTerm
Karsten
Hab ich jetzt gemacht, danke das hat schonmal geklappt. Der Ordner wurde jetzt auch mit deinem Link erstellt. Gnuplot mit Aquaterm tut es leider immer noch nicht. Beim Befehl ./configure –with-aquaterm kommt zwischendrin folgende Meldung:
The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Leider habe ich keine Ahnung was das bedeutet. Kann das mit meinem Problem zu tun haben?
Oh, oh, da steht Dir dann wohl noch ein bißchen Arbeit bevor. Mein pkg-config hat die Version 0.29.2. Das ist die aktuelle Version, die Du von
https://pkg-config.freedesktop.org/releases/
bekommen und übersetzen kannst. Ich hatte sie bereits vor gnuplot installiert. Überhaupt ist gnuplot nicht das erste Programm, welches ich aus den Quellen übersetzt und installiert habe. Es kann also durchaus sein, dass Abhängigkeiten auf meinem System bereits aufgelöst wurden, die bei Dir noch nicht erfüllt sind. Kurz: Es kann sein, dass Du noch mehr Bibliotheken und anderen Kram installieren musst, bis alles klappt.
Wenn Dir das zu nervig ist, kannst Du gnuplot natürlich auch einfach mittels MacPorts oder ähnlichem installieren. Das ist deutlich einfacher. Andererseits wird dann auch Kram installiert, den ich auf meinem Rechner nicht unbedingt haben möchte. Ich halte mein System lieber schlank und installiere explizit nur das, was ich auch wirklich haben möchte. Der Weg dahin ist dann allerdings etwas steiniger – manchmal. Beispielsweise habe ich, um tesseract und ein paar weitere Tools zu installieren, locker mehr als 20 weitere Dinge vorab konfigurieren und installieren müssen.
Lange Rede, kurzer Sinn: Sieh Dir, wenn Du nicht auf MacPorts o.ä. ausweichst, die Abhängigkeiten an, installiere die Software und beiße Dich durch! Sei jedoch gewarnt: Manche Software erfordert ein wenig Erfahrung, um sie übersetzen und installieren zu können.
Viel Erfolg!
Karsten
Ich danke dir für deine Hilfe. Auf Macports ausweichen möchte ich auch nicht, da ich es auch so sehe wie du.
Am compilieren von pkg-config bin ich auf wieder gescheitert, da auch da wahrscheinlich was fehlt, und der make Befehl nicht funktionierte. Ich lasse es für heute erstmal ruhen und hoffe, dass ich es irgendwann hinbekomme. Hatte es mir irgendwie einfacher vorgestellt.
Grüße und noch einen schönen Abend.
Markus
Ja, der Weg kann manchmal, wie bereits gesagt, steinig sein. Das Schöne ist aber: Wenn Du Dich durchgekämpft und Erfolg hattest, hast Du ganz nebenbei auch eine ganze Menge gelernt. – Verlier also nicht die Lust und den Mut!
Alles Gute
Karsten
Apropos, versuche (ich habe das in der Anleitung oben geändert):
export CFLAGS='-I/usr/local/include'
export LDFLAGS='-F/Library/Frameworks'
und danach
./configure --with-aquaterm
Ein paar Bibliotheken werden sicherlich als fehlend angemeckert. In diesem Zusammenhang taucht dann auch schon mal die Meldung bzgl. pkg-config auf. Das ist aber nicht wild. Es bedeutet nur, dass einige Features in gnuplot nicht aktiviert werden. Üblicherweise betrifft das Cairo, QT und andere Dinge.
Dennoch sollte die Konfiguration bis zum Ende durchlaufen, make seinen Dienst verrichten und natürlich auch die Installation klappen. Ich habe es gestern Abend selbst nochmals ausprobiert, auf einem „frischen“ macOS. – Es hat funktioniert, auch ohne pkg-config von Hand zu installieren. Ausschließlich meine obige Anleitung hat ausgereicht.
Karsten
Hallo, ich bekomme die folgende Fehlermeldung.
Kannst du mir weiterhelfen.
In file included from term.c:1207:
In file included from ./term.h:390:
../term/lua.trm:107:10: fatal error: ‚lua.h‘ file not found
#include
^~~~~~~
1 error generated.
make[4]: *** [term.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Nun, so einfach lässt sich das nicht sagen. Ich weiß ja nicht, was auf Deinem Rechner so alles installiert ist oder eben auch nicht. Üblicherweise weist bereits configure auf fehlende Bibliotheken hin.
Bei mir wurde die Datei
lua.h
nicht als fehlend angemerkt. Die gibt es bei mir auch nicht. Versuche doch mal:$ ./configure --with-lua=no
Ich habe jetzt nicht die aktuellen Quellen parat, um den obigen Parameter prüfen zu können. Das würde aber den LUA-Support abschalten, so das auch die entsprechende Headerdatei nicht gesucht würde.