2015-09-30 5 views
6

ein Upgrade auf OS X El Capitan, Cabal und GHC Im Folgenden sind nicht mehr auf meinem System gefunden:Haskell und Cabal fehlt nach El Capitan Update

-bash: ghc: command not found 
-bash: cabal: command not found 

Was muss ich tun, Cabal und GHC zum Laufen zu bringen auf OS X El Capitan?

+0

Wenn Sie können, erstellen Sie bitte ein Problem dafür auf der HP Github-Website, so dass es verfolgt werden kann: https://github.com/haskell/haskell-platform/issues Auch - sind die Programme noch vorhanden in/usr/bin (aber nicht ausführbar) oder hat das Upgrade sie komplett entfernt? – ErikR

+0

Durch die Aktualisierung werden alle Dateien von/usr (außer '/ usr/local') gelöscht, die nicht von Apple stammen. – orome

Antwort

11

Ich habe den folgenden Ansatz am zuverlässigsten auf allen Versionen von OSX einschließlich El Capitan gefunden.

  1. Install Homebrew

  2. Run brew install ghc

  3. Run brew install cabal-install

Dieser Ansatz Ihnen erlaubt, um die neuesten Versionen zu installieren und haben mehrere Versionen installiert und einfach zwischen ihnen wechseln mit der brew switch Befehl. Haskell Platform weist diese Eigenschaften nicht auf, weshalb die fortgeschrittenen Benutzer es in der Regel vermeiden.

+0

Das ist eine gute Idee. Wie entferne ich meine vorhandene Haskell Platform-Installation (ich möchte das zuerst aufräumen)? Bleiben meine bestehenden Pakete in '/ Users/Roy/Library/Haskell/ghc-7.10.2-x86_64/lib' und kann ich sie trotzdem benutzen? – orome

+2

Sie können die Dateien einfach löschen (Installations- und Paketverzeichnis), falls es keinen besseren Weg gibt. Ich würde nicht erwarten, dass Konflikte entstehen, selbst wenn Sie nichts tun. Die von Brew installierte Cabal verwendet eine andere Verzeichnisstruktur, also müsstest du ein wenig herumspielen, um die Pakete zu behalten, aber ich lasse sie lieber fallen und lasse Cabal seine Arbeit machen und installiere sie, wenn es nötig ist. –

+0

Klingt vielversprechend. Wo legt Homebrew installierte Pakete ab? Wozu hat es die ausführbaren Dateien für "stylish-haskell" und "hlint" gebracht? Ich kann sie nicht finden? – orome

1

Ich glaube, El Capitan erlaubt Benutzern nicht zu ändern /usr mehr wo die Haskell-Binärdateien installiert sind.

Wenn Sie die Programme in /usr/local/bin kopieren/installieren können, sollten sie von dort arbeiten.

Wenn die Programme in/usr/bin nicht mehr sichtbar sind, würde ich vorschlagen, die HP auf einer anderen Partition neu zu installieren. Dann kopiere sie nach/usr/local.

Lassen Sie mich wissen, wie es geht.

+0

Irgendeine Idee, ob ein Update von GHC oder Cabal geplant ist, das sich damit befassen wird. Manuelles Bewegen von Dingen scheint ein wenig fragil. – orome

+0

BTW: Kopieren ist keine Option, da es scheint, dass die EC-Installation alles entfernt, was es in '/ usr' nicht mag. – orome

10

Bearbeiten: Es gibt jetzt eine released version, die diese Probleme behebt.

Dies wird alles durch die neuen "rootless security" Funktionen in El Capitan verursacht.

Sie müssen die Programme nicht kopieren oder neu installieren - die Dateien in /usr/bin waren immer nur symbolische Verknüpfungen zu den in /Library/Frameworks/GHC.framework/ und /Library/Frameworks/HaskellPlatform.framework verfügbaren Elementen. Also sollten Sie in der Lage sein, sie von dort erneut zu symbolisieren (diesmal von /usr/local/bin).

Siehe auch https://github.com/haskell/haskell-platform/issues/205

Hoffentlich eine neue Plattform-Release, das diese Probleme behebt bald sein wird.

+0

FWIW, ich habe den Kandidaten letzte Nacht getestet und es scheint perfekt zu funktionieren. (Und ich habe dies bereits letzte Nacht dem SCLV gemeldet, also zählt das nicht als zusätzlicher Erfolgsbericht.) – Carl

Verwandte Themen