"cabal install cabal-install"不会更新OSX中的cabal版本

daj*_*daj 10 haskell cabal

我是haskell和cabal的新手,所以我可能会错过一些简单的东西.

我更新了cabal-install:

sudo cabal install cabal-install
Password:
Resolving dependencies...
Configuring cabal-install-1.22.0.0...
Building cabal-install-1.22.0.0...
Installed cabal-install-1.22.0.0
Updating documentation index
Run Code Online (Sandbox Code Playgroud)

但是cabal --version说:

cabal-install version 1.18.0.5
using version 1.18.1.4 of the Cabal library 
Run Code Online (Sandbox Code Playgroud)

cabal-install 1.22.0.0发生了什么?

AJF*_*mar 12

cabal全局制作安装包有两种方法.请注意,因此,cabal可能需要sudo.

此命令将<PACKAGE>全局安装:

$ cabal install <PACKAGE> --global
Run Code Online (Sandbox Code Playgroud)

作为更通用的解决方案,编辑文件~/.cabal/config并设置user-installFalse.这将自动设置--global标志,这样您就可以cabal install <PACKAGE>毫无顾虑地进行编写.这是我的config文件的片段:

...
-- split-objs: False
-- executable-stripping: True
user-install: False
-- package-db:
-- flags:
...
Run Code Online (Sandbox Code Playgroud)

您可能还希望设置root-cmdsudo尚未设置,以便cabal在遇到权限问题时自动提示输入root密码.

这里有更多在线信息.


daj*_*daj 5

我看到有一个更新的cabal ~/Library/Haskell/bin,所以我可以用这个副本的符号链接替换/ usr/bin/cabal,或者我可以将这个二进制文件复制到/usr/bin.

我仍然感兴趣,如果有更优雅/规范的方式来确保新的cabal是默认使用的.

  • 这一切都由你的PATH决定. (3认同)