我做了一個圖的安裝,並且都很好。haskell:跨沙箱共享模塊?
>cabal install diagrams
Resolving dependencies...
All the requested packages are already installed: diagrams-1.2
Use --reinstall if you want to reinstall anyway.
但是,如果我嘗試使用它:進口Diagrams.Prelude
Could not find module `Diagrams.Prelude'
Use -v to see a list of the files searched for.
和:
>ghc-pkg list diagrams
WARNING: there are broken packages.
Run 'ghc-pkg check' for more details.
e:/Plang/Haskell Platform\lib\package.conf.d:
(no packages)
C:\Users\guthrie\AppData\Roaming\ghc\i386-mingw32-7.8.3\package.conf.d:
(no packages)
(破碎的包是有一個良好的新的東西所有舊版本版本已安裝。)
它似乎安裝在.cabal-sandbox中,但未由ghc-pkg(?)報告:
C:\Users\guthrie\.cabal-sandbox\i386-windows-ghc-7.8.3-packages.conf.d
\圖表...
我明白,而不是GHCI我可以使用「陰謀REPL」,這將這個添加到路徑附加包庫引用,但我想使用其他這些安裝的庫Haskell IDE(Heat,Leksah)。
我不知道,如果這個沙箱是一個殘以前的小集團安裝本來不會工作,或者如果新的陰謀版本(1.22)自動使用它們,或...
我發現,使用「陰謀EXEC GHC」可能會解決這個問題,但我試了一下,雖然投入自己累得顯式路徑,我沒有找到這個正確的用法:
-- Good:
ghc --make Program.hs -package-db=c:\users\name\.cabal-sandbox\i386-windows-ghc-7.8.3-packages.conf.d\
-- Fails:
cabal ghc --make Program.hs
而且目前的IDE沒有這個選項。我必須添加一個指向這個目錄的命令行選項(-package-db =)到所有其他使用GHC的工具嗎?這是正確的做法嗎?
這是一個項目目錄中的沙箱(即與.cabal文件相同的文件夾)?如果是這樣,那麼一個集成了cabal *的IDE應該在構建項目時自動使用它(因爲cabal是這樣做的)。如果你使用的是沙箱只是爲了保持你的全局/用戶包db的清潔,那麼就把'ghc'別名爲'ghc -package-db = ...' - 這就是我所做的。這可能不起作用,例如,如果您的IDE以絕對路徑調用ghc - 所以確切知道您的特定IDE調用了什麼命令會很有幫助。 – user2407038 2015-02-06 00:50:13
您可以使用'cabal repl'來啓動GHCi,使用沙箱中的軟件包。 – Cactus 2015-02-06 02:14:16
不,不是本地沙箱,主目錄中的全局沙箱(c:/users/name/.cabal-sandbox ...)。Windows沒有別名的概念 - 我不得不擺弄Haskell平臺的安裝,這可能會破壞事情。我精簡所有的IDE默認使用GHC.exe的直接路徑解析。不知何故,沙箱的自動使用和以前GHC的使用看起來並不完美(但?)。 – guthrie 2015-02-06 03:25:50