2

我安装了 Windows XP 和 Haskell Platform 2013。当我想在一台没有安装 Haskell 平台的计算机上编译我的代码,并且我不允许安装任何东西时,我可以将我的 Haskell 平台复制到 USB 闪存卡上,并在这台计算机上运行,​​它的工作只是美好的。

但有时我需要额外的包,这些包不是标准 Haskell 平台构建的一部分。

我可以使用 Cabal 将它简单地安装在我的个人计算机上,但我不知道如何安装它们以便它们可以便携工作,即从我的 USB 闪存卡而不是我的计算机。

我试过这个:

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

这个安装包到 Haskell 平台目录中,但是当我在另一台计算机上运行 Haskell 平台时,它看不到它。

我想,我应该将配置文件安装在 Haskell Platform 目录中,但我不知道该怎么做。

请帮我解决这个问题。先感谢您!



非常感谢你,米哈伊尔·格鲁申科夫!现在一切正常。

为了方便像我这样的新手,寻找答案,我只描述指令,做什么,以获得相同的结果:

0)在做任何事情之前阅读说明/

1)卸载所有额外的包,需要安装可移植(带有依赖项):取消注册这个包

ghc-pkg unregister gnuplot

,然后从它存储的位置删除包文件。还要从“package.conf.d”文件夹中删除所有相关文件。要搜索它们,请使用

ghc-pkg list

.

2)运行(也许没有必要)

ghc-pkg recache

.

3)在haskell平台的所需目录中安装包。我是在“C:\Program Files\Haskell Platform\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”,即“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

.

结尾。

*更新*

我在本说明中发现了一些愚蠢的错误(在 3a 和 4 中)。现在修好了。

3a 不工作!

4

1 回答 1

3

您需要将$GHCDIR\lib\package.conf.d\*.conf文件中的绝对路径替换为引用的相对路径$topdir,然后运行ghc-pkg recache​​.

看看Haskell 平台的 Windows 安装程序是如何做到的。

于 2013-09-25T15:31:50.480 回答