我安装了Windows XP和Haskell Platform 2013。当我想在未安装Haskell Platform的计算机上编译我的代码,并且不允许安装任何东西时,我可以在USB闪存卡上复制Haskell Platform,然后在此计算机上运行,这样就可以了精细。
但有时我需要其他软件包,这些软件包不是标准Haskell Platform构建的一部分。
我可以简单地用Cabal将其安装在我的个人计算机上,但是我不知道如何以可移植的方式安装它们,即从我的USB闪存卡而不是计算机上安装它们。
我尝试了这个:
cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0"
该软件包已安装到Haskell平台目录中,但是当我在另一台计算机上运行Haskell Platform时,看不到它。
我认为,我应该将配置文件安装在Haskell Platform目录中,但我不知道如何做。
请帮我解决这个问题。先感谢您!
非常感谢Mikhail Glushenkov!现在一切正常。
为了方便像我这样的新手,寻找答案,我仅描述该指令,该怎么做才能获得相同的结果:
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
。
结束。
* UPD *
我在此说明中发现了一些愚蠢的错误(在3a和4中)。立即修复。
3a不起作用!
您需要$GHCDIR\lib\package.conf.d\*.conf
用引用的相对路径替换文件中的绝对路径$topdir
,然后运行ghc-pkg recache
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句