Tragbarer Haskell-Compiler

1833
Matthew Piziak

Ich habe ein Haskell-Programm, das ich im Cluster meiner Schule ausführen möchte, aber ihre GHC-Version ist zu alt und wird nicht aktualisiert. Ich möchte es irgendwie mit meinem Quellcode packen, aber standardmäßig muss ein Installationsskript ausgeführt werden. Gibt es eine Möglichkeit für mich, eine aktuelle Haskell-Compiler-Programmdatei zu erhalten, die weiterhin funktioniert, wenn ich sie an einen anderen Computer sende?

Ich könnte meinen Code einfach lokal kompilieren und die ausführbare Datei übermitteln, aber ich möchte, dass er auf dem Cluster selbst erstellt werden kann.

6

1 Antwort auf die Frage

11
Mikhail Glushenkov

Als ich dieses Problem hatte, habe ich GHC gerade in meinem Home-Verzeichnis installiert:

$ wget http://www.haskell.org/ghc/dist/7.6.1/ghc-7.6.1-i386-unknown-linux.tar.bz2 $ tar xjvf ghc-7.6.1-i386-unknown-linux.tar.bz2 $ cd ghc-7.6.1-i386-unknown-linux $ ./configure --prefix=/home/user/bin/ghc-7.6.1 $ make install $ export PATH=/home/user/bin/ghc-7.6.1/bin:$PATH 

Danach können Sie den neuesten GHC für Ihr Konto verwenden.

Bis vor kurzem hatte ich ungefähr zehn GHCs auf meinem System installiert, die meisten davon in meinem Heimatverzeichnis. :] camccann vor 11 Jahren 2
Vielen Dank! Im Idealfall möchte ich, dass jeder Benutzer mein Programm über "make" in meinem Quellverzeichnis kompilieren kann. Dies ist jedoch ein Schritt nach oben! Matthew Piziak vor 11 Jahren 0
@MatthewPiziak Wenn Sie die lokale Installation von ghc global lesbar machen (und ggf. ausführbar), kann jeder Benutzer sie verwenden, sofern er über den Pfad verfügt. vor 11 Jahren 2
Oh! Wie würde ich das machen? "chmod" auf der ausführbaren Datei? Matthew Piziak vor 11 Jahren 0
Genau und auch die Bibliotheken. Unter Verwendung des Installationsverzeichnisses aus dieser Antwort lautet die Quick-and-Dirty-Lösung "chmod -Ro + rX / home / user / bin / ghc-7.6.1". Natürlich muss auch / home / user / bin lesbar sein. Sie werden wahrscheinlich Ihre Kabalenpräferenzen anpassen, um Bibliotheken standardmäßig auch auf die globale Datenbank zu installieren, da die "globale Datenbank" eigentlich für jede ghc-Installation lokal ist. Wenn Sie dann ein Paket in die globale Datenbank Ihres lokalen ghc installieren, haben auch alle anderen Benutzer, die Ihr ghc verwenden, Zugriff. vor 11 Jahren 1
Wenn Sie Libs nach dem Ausführen von chmod installieren, müssen Sie wahrscheinlich chmod erneut verwenden, um sie lesbar zu machen. Möglicherweise möchten Sie setfacl oder ähnliches verwenden, um `/ home / user / bin / ghc-7.6.1 'als neue Unterordner und Dateien global lesbar zu machen. Oder nicht, abhängig von Ihren persönlichen Datenschutz- / Sicherheitspräferenzen. vor 11 Jahren 0