Ich habe versucht, Haskell Platform und cabal-install
installiert auf Linux in User-Space auf einem System, das nicht das GNU Multi-Precision-Paket (GMP) installiert installiert.Verwenden von GHC, cabal mit GMP im User-Space installiert
Ich habe GHC-6.12.1 installiert und GHCi funktioniert, indem ich LB_LIBRARY_PATH
auf das Verzeichnis lib, in dem ich GMP installiert habe, zeigen, aber dann lief im nächsten Schritt Probleme, cabal-install
zu arbeiten. Es versuchte weiterhin (statisch) mit GMP zu verlinken.
Dies schlägt fehl, weil der GMP nicht im System installiert ist und ld
keine Ahnung hat, wo die Bibliotheken zu finden sind, und es gibt keine Umgebungsvariable (die ich kenne), die ld sagen kann, wo der Benutzer zu finden ist -installed GMP, und (scheinbar) keine Möglichkeit zu sagen, Cabal zu konfigurieren, um die relevante -L
Flagge zu liefern.
Nach vielen fruchtlosen Such-und Hacking-Versuche traf ich auf die absurd einfache Idee der Installation meiner eigenen ld
Shell-Skript, das das System ld
mit der entsprechenden -L
-Flag aufruft.
Dies ist ein Shell-Scripting-101, natürlich:
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "[email protected]"
Mit diesem Skript in einem Verzeichnis auf meinem PATH
vor /usr/bin
alle Probleme weg gegangen installiert sein scheinen.
Für diejenigen, die GHC in einem Benutzerverzeichnis installiert haben, werden sie in der Lage sein, den letzten Befehl mit sudo auszuführen. Als ich die Datei rts.pkg manuell editierte, wusste ich nicht, welche Art von Feld separater cabal verwendet wurde, also legte ich einfach das zusätzliche Bibliotheksverzeichnis in eine eigene Zeile nach dem Original. – Emanuel
Das Trennzeichen für diese Bibliotheksverzeichnissen ist nur Leerzeichen. –
Kopieren Sie die Datei libgmp.so in eines der 'include-dirs' z. '/ home/dilwar/bin/lib/ghc-7.8.3/rts-1.0'. Es hat für mich funktioniert. – Dilawar