Haskell 与cabal一起安装的DARC未注册为shell命令

Haskell 与cabal一起安装的DARC未注册为shell命令,haskell,cabal,darcs,Haskell,Cabal,Darcs,作为在我的计算机上安装Ubuntu的一部分,我apt获得安装cabal。运行cabal update后,我运行了cabal install darcs,发现我需要诅咒,安装了libncurse5 dev,发现我需要curl,安装了它,当它仍然不起作用时,运行cabal install darcs-f-curl 这是可行的,但是当运行darcs时,darcs不会从shell运行。它安装在~/.cabal/bin/darcs中,所以我在那里做了一个链接,链接到/bin。DARC现在从shell开始工

作为在我的计算机上安装Ubuntu的一部分,我
apt获得安装
cabal
。运行
cabal update
后,我运行了
cabal install darcs
,发现我需要诅咒,安装了
libncurse5 dev
,发现我需要curl,安装了它,当它仍然不起作用时,运行
cabal install darcs-f-curl


这是可行的,但是当运行
darcs
时,darcs不会从shell运行。它安装在
~/.cabal/bin/darcs
中,所以我在那里做了一个
链接,链接到
/bin
。DARC现在从shell开始工作,但我想知道是否有更好的方法,也许在sudo下运行
cabal install

在这种情况下需要
--global
标志。运行
sudo-cabal install darcs-f-curl--global
,使用
-f-curl
,因为cabal找不到curl,
--global
使其安装到
usr/local/bin
,并且
sudo
可以正常工作。

默认情况下,cabal code>安装不需要管理员权限。因此,它无法安装到例如
/usr/bin
中。由于
$HOME/bin
不是标准,折衷办法是将可执行文件放入
~/.cabal/bin

然后,您可以将
~/.cabal/bin
添加到路径中以查看这些可执行文件(例如,通过将以下内容附加到
.bashrc

 export $PATH=$PATH:~/.cabal/bin

如果您的计算机中有管理员权限,请务必使用
--global
标志。

首先,不要使用
sudo
。即使在根目录下运行,
cabal
也会在您的主目录中构建内容,因此不加区别地使用
sudo
可能会导致在
~/.cabal
中生成根所有的文件。相反,请设置
root cmd:sudo
/.cabal/config
中,然后使用
--global
选项调用相应的命令

其次,使用本地安装通常比使用全局安装更方便、更安全,因为您将包管理器和
cabal
分开。因此您也可以将其添加到
~/.bashrc

export PATH=$HOME/.cabal/bin:$PATH
然后继续安装stuff,完全不使用
sudo


另请参阅:有点过于悲观,但信息丰富。

是否有针对DARC的Ubuntu软件包?是的,但它已经落后了好几个版本,而且由于DARC似乎正在经历相当多的开发,我想确定我得到了最新版本。我不认为这个问题应该作为离题而结束——解释它包括关于“程序员常用的软件工具”的问题。我认为
cabal
darcs
都属于这一职权范围。谢谢你的回答。这篇文章读得很好,但让我渴望让cabal成为一名成熟的软件包经理。你可能会发现你的
~/.cabal
目录中的权限现在乱七八糟。它们很容易用
chown
,但这仍然是个麻烦。谢谢你介绍我使用
chown
命令。真是太棒了!