Come noto cabal
è un programma per gestire l'installazione di pacchetti come Free2DD pkg_add
. Ma c'è un altro strumento chiamato ghc-pkg
. Non so perché ci sono due programmi diversi. Qual è il ruolo di ognuno di loro e come sono collegati?Come sono correlati i programmi `ghc-pkg` e` cabal`? (Haskell)
risposta
Cabal è una libreria di edifici e di imballaggi per Haskell, una sorta di "autotools Haskell". Legge i file .cabal
ei pacchetti Haskell di solito hanno un file Setup.hs
che utilizza Cabal per creare il pacchetto. Poi c'è anche il comando cabal
fornito dal pacchetto di installazione della cabala. Fornisce comandi per l'esecuzione dello script Setup.hs
e alcune funzioni di gestione dei pacchetti, come l'installazione dei pacchetti direttamente da Hackage. Dovresti leggere this blogpost by Ivan Miljenovic che spiega abbastanza bene il ruolo di Cabal, cabal-install e Hackage.
ghc-pkg
è uno strumento di livello inferiore per l'esecuzione del database dei pacchetti di GHC. La cabala è pensata per funzionare con ogni compilatore Haskell, mentre ghc-pkg è ovviamente specifico per GHC. Non puoi usare ghc-pkg per costruire nulla, puoi semplicemente registrare i pacchetti che hai costruito in altro modo.
cabal è solo uno strato di interfaccia per ghc-pkg con alcune funzionalità aggiunte. È importante sapere solo ghc-pkg perché la funzionalità di disinstallazione non è stata aggiunta alla cabal, ma può essere eseguita direttamente con ghc-pkg.
ghc-pkg non può essere disinstallato. Probabilmente intendevi annullare la registrazione. E anche dopo l'annullamento della registrazione, posso ancora utilizzare il pacchetto non registrato correttamente. In quanto tale, non è una disinstallazione. –
- 1. Come organizzare i file nei programmi Haskell?
- 2. Haskell Cabal QuickCheck Integration
- 3. Haskell cabal + hsc2hs
- 4. Come sono correlati RDF e RDFS?
- 5. Haskell Cabal: Misteriose dipendenze mancanti o ricorsive
- 6. In che modo i functor in Haskell sono correlati ai funtori nella teoria delle categorie?
- 7. {} in .cabal dell'eglefino documentazione in Haskell
- 8. Haskell e Cabal mancante dopo l'aggiornamento El Capitan
- 9. Come installate pacchetti/librerie senza Cabal o Cabal-Install?
- 10. Come installare Haskell cabal tool per Haskell 7.6.1 su Mac OSX?
- 11. Come utilizzare MIN_VERSION_ della cabal e altre macro con ghci?
- 12. I modelli aritmetici sono legali Haskell?
- 13. I formati di programmi binari OpenGL sono standardizzati?
- 14. Collegamento di uno strumento di costruzione in Cabal (Haskell)
- 15. Tutti i funtori funzionali Haskell sono?
- 16. In che modo i nomi dei pacchetti di Hackage sono mappati ai nomi di "installazione cabal"?
- 17. "cabal install cabal-install" non aggiorna la versione cabal in OSX
- 18. Come elencare i pacchetti installati in Cabal?
- 19. Come creare una libreria autonoma con cabal?
- 20. installa haskell cabal senza la risoluzione delle dipendenze manuale
- 21. Qual è la differenza tra Array {Bool} e BitArray in Julia e come sono correlati?
- 22. Quali sono le differenze tra i programmi di installazione MSI e EXE e quali dovrei scegliere?
- 23. Come ottimizzare i programmi F # in generale
- 24. cabal Dipendenza FFI
- 25. Come utilizzo runhaskell con cabal-dev?
- 26. Come interagisco con i programmi Windows
- 27. Come posso distribuire i programmi Python?
- 28. Utilizzare i test quickCheck con Cabal?
- 29. Cabal e --no-require-sandbox
- 30. Come fare riferimento a progetti correlati nella stessa soluzione quando i pacchetti Nuget sono l'output richiesto
duplicato di http://stackoverflow.com/questions/2706667/what-is-the-relationship-between-ghc-pkg-and-cabal – Boris
@Boris È difficile capire perché non sono riuscito a trovarlo con il mio titolo ... – Eonil
Sì, è strano. Sono molto simili. – Boris