2013-09-25 45 views
2

我安裝了Windows XP和Haskell Platform 2013。當我想在一些沒有安裝Haskell平臺的計算機上編譯我的代碼時,我不允許安裝任何東西,我可以將我的Haskell平臺複製到USB閃存卡上,然後在這臺計算機上運行,精細。安裝在Haskell平臺上的Cabal在windows上的便攜式軟件包

但有時我需要額外的軟件包,它們不是標準Haskell Platform構建的一部分。

我可以簡單地將它安裝在我的個人電腦與Cabal,但我不知道,如何安裝他們的方式,他們可以工作便攜式,我。即從我的USB閃存卡而不是我的電腦。

我嘗試這樣做:

cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0" 

此安裝包到哈斯克爾平臺目錄,但是當我在另一臺計算機上運行的Haskell平臺,它沒有看到它。

我想我應該把配置文件安裝在Haskell Platform目錄下,但我不知道該怎麼做。

請幫我解決這個問題。先謝謝你!



非常感謝你,米哈伊爾Glushenkov!現在一切正常。

對於像我這樣的新手的方便起見,尋找答案,我只是描述了指令,要量力而行,有相同的結果:

0)做任何事情之前,請先閱讀指令/

1)卸載所有附加軟件包,這是需要安裝便攜式(具有相關性):註銷此包具有

ghc-pkg unregister gnuplot 

,然後從那裏商店刪除包文件。還要從「package.conf.d」文件夾中刪除所有相關的文件。要搜索它們,請使用

ghc-pkg list 

2)運行(也許是不必要的)

ghc-pkg recache 

3)將軟件包安裝在haskell平臺所需的目錄下。我做到了在 「C:\ PROGRAM 文件\哈斯克爾平臺\ 2013.2.0.0 \ addlib」:

cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0\addlib" --global 

4)更改與「package.conf.d」中已安裝軟件包相關的每個新文件:替換「C:\ Program Files \ Haskell Platform \ 2013.2.0.0 \ addlib \ utility-ht-0.0.9 \ ghc -7.6.3「就像這樣:」$ topdir \ .. \ addlib \ utility-ht-0.0.9 \ ghc-7.6.3「,i。即「C:\ Program Files \ Haskell Platform \ 2013.2.0.0 \ addlib \」 - >「$ topdir \ .. \ addlib \」。

5)運行

ghc-pkg recache 

3a)也許,這會更好,然後3(我沒有測試它)。如果是的話,不要做3,4和5.

cabal install gnuplot --prefix "$topdir\..\addlib" --global 

結束。

* UPD *

我發現這說明一些愚蠢的錯誤(在3a和4)。現在修復。

3a不工作!

+0

我從來沒有在Windows上安裝Haskell,所以也許這只是我不明白的地方,但我沒有得到前綴位。您提供的前綴不在您的USB驅動器上,爲什麼您希望在另一臺計算機上看到它? – asm

+0

@AndrewMyers,我在Haskell平臺文件夾中安裝了該庫,並將Haskell平臺文件夾移動到我的USB閃存卡中,因此在物理上,該庫位於另一臺計算機上。問題是讓Haskell平臺在另一臺計算機上看到它。我不知道如何去做,所以我問了這個問題。 –

回答

3

您需要用相對路徑替換$GHCDIR\lib\package.conf.d\*.conf文件中的絕對路徑,相對路徑引用$topdir,然後運行ghc-pkg recache

看看Haskell Platform's Windows installer does it

+0

謝謝@MikhailGlushenkov,但它看起來像我沒有任何文件,與gnuplot庫(特別是,我安裝)有關。我怎麼能做這個文件? –

+0

嗯,我還不能編輯以前的評論,所以我只寫:我的意思是,我沒有這樣的文件在你提到的目錄中。 –

+2

@AnnonImous運行'ghc-pkg list'。它會顯示'package.conf.d'目錄的位置。另外,您需要使用'--global'運行'cabal install',以便將其安裝到全局程序包數據庫。 –