我是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-install
为False
.这将自动设置--global
标志,这样您就可以cabal install <PACKAGE>
毫无顾虑地进行编写.这是我的config
文件的片段:
...
-- split-objs: False
-- executable-stripping: True
user-install: False
-- package-db:
-- flags:
...
Run Code Online (Sandbox Code Playgroud)
您可能还希望设置root-cmd
为sudo
尚未设置,以便cabal
在遇到权限问题时自动提示输入root密码.
这里有更多在线信息.
我看到有一个更新的cabal ~/Library/Haskell/bin
,所以我可以用这个副本的符号链接替换/ usr/bin/cabal,或者我可以将这个二进制文件复制到/usr/bin
.
我仍然感兴趣,如果有更优雅/规范的方式来确保新的cabal是默认使用的.