2015-09-30 33 views
6

A seguito di un aggiornamento a OS X El Capitan, Cabal e GHC non si trovano sul mio sistema:Haskell e Cabal mancante dopo l'aggiornamento El Capitan

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

Che cosa devo fare per ottenere Cabal e GHC lavoro su OS X El Capitan?

+0

Se è possibile, creare un problema per questo sul sito github HP in modo che possa essere monitorato: https://github.com/haskell/haskell-platform/issues Inoltre, i programmi esistono ancora in/usr/bin (ma non sono eseguibili) o l'aggiornamento li ha completamente rimossi? – ErikR

+0

L'aggiornamento cancella tutti gli elementi '/ usr' (eccetto'/usr/local') di qualsiasi cosa non provenga da Apple. – orome

risposta

11

Ho trovato il seguente approccio più affidabile su tutte le versioni di OSX incluso El Capitan.

  1. Install Homebrew

  2. Run brew install ghc

  3. Run brew install cabal-install

Questo approccio consente di installare facilmente le versioni più recenti e hanno più versioni installate e passare facilmente tra di loro utilizzando il comando brew switch. La piattaforma Haskell non ha queste proprietà, motivo per cui gli utenti avanzati tendono a evitarlo in qualsiasi modo.

+0

Questa è una buona idea. Come faccio a sbarazzarmi della mia installazione Haskell Platform esistente (vorrei prima ripulirla)? I miei pacchetti esistenti in '/ Users/Roy/Library/Haskell/ghc-7.10.2-x86_64/lib' rimangono e posso ancora usarli? – orome

+2

Puoi semplicemente cancellare i file (le istruzioni di installazione e di pacchetto) nel caso non ci fosse un modo migliore. Non mi aspetterei alcun conflitto anche se non si fa nulla. La cabina Brew-installed utilizza una diversa struttura di directory, quindi dovresti fare un po 'di confusione per mantenere i pacchetti, ma preferisco semplicemente lasciarli e lasciare che Cabal faccia il suo lavoro e installarli quando richiesto. –

+0

Sembra promettente. Dove Homebrew inserisce i pacchetti installati? Per quanto riguarda dove ha messo gli eseguibili per 'stylish-haskell' e' hlint'- non li trovo? – orome

1

Credo che El Capitan non consenta più agli utenti di modificare /usr in cui sono installati i binari di Haskell.

Se è possibile copiare/installare i programmi in /usr/local/bin, dovrebbero funzionare da lì.

Se i programmi non sono più visibili in/usr/bin, suggerirei di reinstallare HP in una partizione diversa. Quindi copiali su/usr/local.

Fammi sapere come va.

+0

Qualsiasi idea se sia pianificato un aggiornamento di GHC o Cabal che risolverà questo problema. Spostare manualmente le cose sembra un po 'fragile. – orome

+0

BTW: La copia non è un'opzione poiché sembra che l'installazione CE rimuova qualsiasi cosa non piaccia in '/ usr'. – orome

10

Modifica: Ora c'è un released version che corregge questi problemi.

Questo è tutto causato dalle nuove funzionalità "rootless security" in El Capitan.

Non è necessario copiare o reinstallare i programmi: i file in /usr/bin erano sempre solo collegamenti simbolici, alle cose disponibili in /Library/Frameworks/GHC.framework/ e /Library/Frameworks/HaskellPlatform.framework. Quindi dovresti essere in grado di collegarli di nuovo a link simbolici (a /usr/local/bin questa volta) da lì.

Vedi anche https://github.com/haskell/haskell-platform/issues/205

Speriamo che una nuova release della piattaforma che risolve questi problemi saranno presto.

+0

FWIW, ho testato il candidato ieri sera e sembra funzionare perfettamente. (E l'ho già segnalato a sclv ieri sera, quindi questo non conta come un rapporto extra di successo.) – Carl

Problemi correlati