为什么 cabal sandbox init 不像 virtualenv 那样改变 PATH?

2024-03-21

这里是 Haskell 新手和 Python 爱好者。

我想我可能在这里遗漏了一些东西,但是如果你看看Yesod 的快速入门 http://www.yesodweb.com/page/quickstart,作者安装一些软件包before cabal sandbox init。我在其他地方也看到过同样的模式。问题:

  1. 我错过了什么吗?这是使用 cabal 沙箱的真正方法吗?
  2. 为什么我不能(或不应该)在沙箱内安装 yesod-bin?
  3. 如果我在某些项目中使用不同版本的 yesod-bin 怎么办?
  4. 如果有一些库在 .cabal-sandbox/bin 内安装二进制文件,为什么cabal sandbox init不要更改 PATH 以匹配沙盒版本?

预先非常感谢您!


  1. 是的,这就是如何使用沙箱。

    cabal sandbox init将为您创建一些文件/目录来跟踪您已安装的软件包。

    cabal install some_package将该软件包安装到沙箱中。

  2. 非常欢迎您安装yesod-bin进入沙箱。

  3. 阅读第2点

  4. cabal sandbox init不会改变你的道路,因为它实际上不需要。只需添加PATH=.cabal-sandbox/bin:$PATH在你的.bash_profile.

    与 virtual-env 不同,您永远不需要“启用”或“禁用”沙箱。你刚才cd进入一个目录,它会自动启用。

    我发现阴谋集团沙箱的唯一真正缺点是,您需要位于根目录中才能对沙箱进行操作。意思是,如果您在子目录中,则运行cabal install some_package不会将其安装到上一级的沙箱中,而是将其安装到全局数据库或用户数据库中,具体取决于您的方式cabal配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 cabal sandbox init 不像 virtualenv 那样改变 PATH? 的相关文章

随机推荐