我刚安装哈斯克尔从它的官方网站 。 在此之后,随着它的快速入门教程。
我运行:
cabal update
这显示了该消息:
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
我运行:
cabal install cabal-install
并检查是否更新是成功的
cabal update
结果,它显示我从一开始就相同的消息:
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
所以,我有没有升级的小集团安装或不? 如何检查我的阴谋的版本?
重要提示:我使用的是64位版本的Mac OS X.
我安装哈斯克尔平台后也有类似的问题2012.4.0.0
在OSX。 当我跑cabal install cabal-install
,它结束了:
cabal: ../ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal: does not exist
所以我猜它得到了它的路径混淆的地方。 然而可执行文件实际上是成功构建(检查~/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal
),我只是把它抄了从有到~/Library/Haskell/bin
是我的道路上。
此后一切OK跑:
$ which cabal
/Users/luke/Library/Haskell/bin/cabal
$ cabal update
Downloading the latest package list from hackage.haskell.org
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0.3 of the Cabal library
在我的情况(以及可能其他人?)阴谋最初安装/usr/local/bin
由自制软件安装时haskell-platform
。 当升级阴谋,该版本被安装到$HOME/.cabal/bin/cabal
。 你应该到更高的地方你的阴谋箱在你的$PATH
,就像这样:
export PATH=$HOME/.cabal/bin:$PATH
每个人似乎都在这里体验到一个稍微不同的问题。 在我的情况下, cabal
被成功建造并安装到~/Library/Haskell/bin
。
正如指出的~/.cabal/config
,加入~/Library/Haskell/bin
到PATH
解决的问题。
下面是在说明~/.cabal/config
:
-- === Built executables will be installed in:
-- ~/Library/Haskell/bin
--
-- You may wish to place this on your PATH by adding the following
-- line to your ~/.bash_profile:
-- export PATH="$HOME/Library/Haskell/bin:$PATH"
在OS X 10.8我不得不添加/Library/Haskell/bin
到我的PATH(把它之前/usr/bin
)。 补充说固定在错误消息
cabal --version
给你你正在运行的阴谋的版本。 如果你想看到的版本小集团安装你有,运行cabal info cabal-install
并期待在安装线的版本 。
对我来说,在OS X上, 安装的版本是[unknown]
,运行后cabal install cabal-install
,这是不是很大。
我也有这个问题。
运行后which cabal
,我发现它是用/usr/bin/cabal
。 删除这解决了这个问题。
看来,阴谋默认本地安装包为当前用户,因此不会成为路径的一部分。 看看惊天动地文件明确步骤1.2.1在那里你可以改变默认安装全球事物的配置(不推荐)。
顺便我安装了阴谋cabal --global install cabal-install
,但仍然有与哈斯克尔以来的默认安装使的路径顺序路径问题C:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin;C:\Program Files\Haskell Platform\2013.2.0.0\bin;
其中,所述第一路径在所述第二个优先级。 随着--global标志阴谋安装二进制到C:\Program Files\Haskell\bin
这是不是在我的道路,但必须在之前添加C:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin
路径。
从资料为准
你必须把cabal.exe的目录中在您%PATH%,例如C:\ Program Files文件\哈斯克尔\ bin中。
就我而言,这里几个答案的组合被要求通过这个问题来获得。 我会尝试提供一个答案在我的处境别人更全面的解决方案。
- 对于初学者来说,运行
which cabal
表明我/usr/bin/cabal
正在加载,这是一个符号链接/Library/Haskell/ghc-7.8.3-x86_64/bin/cabal
。 我相信正在安装的阴谋的新版本,但是这个路径是特定于某个版本,使他们被忽略了。 添加/Library/Haskell/bin
我的前$PATH
纠正这种情况。 - 其次,更重要的是,新版本的
cabal-install
,正在安装到我的阴谋沙箱,而不是系统的位置。 我没有看到任何其他的答案表明这一点,但我周围有点胡闹后发现,我的移动应用程序的目录允许的阴谋以外的实际安装到系统中。 - 最后,加入
--global
标志提供给命令解决了这一问题。 我的最后一个命令是cabal install --global cabal-install
。 在此之后,我终于能正确地更新。
TL; DR:如果你使用的阴谋沙箱,移动你的项目和运行的目录以外的cabal install --global cabal-install
。 此外,检查您的$PATH
变量,其他建议。
在我的情况正在安装项目我在的.cabal的沙箱阴谋的新版本。
如检查的版本:
./.cabal-sandbox/bin/cabal --version
所以,我需要升级它的那个之外。 这是在OSX。