【问题标题】:Haskell Cabal regenerate documentation for all installed packagesHaskell Cabal 为所有已安装的软件包重新生成文档
【发布时间】:2011-07-03 15:30:10
【问题描述】:

如何为所有本地安装的 cabal 软件包生成和安装文档?我在 ~/.cabal/config 中打开了文档标志,这意味着所有新安装的软件包也会生成文档。但是如何为所有已经安装的包生成文档呢?

有没有办法自动cabal install --reinstall所有已经安装的包?更重要的是,这是个好主意吗?

【问题讨论】:

    标签: haskell documentation cabal


    【解决方案1】:

    如果您有最新版本的 cabal-install(我认为 >= 0.10),您可以尝试这样做

    $ cabal install --reinstall --upgrade-dependencies world
    

    不幸的是,它在我的情况下不起作用:

    $ cabal install --dry-run --reinstall world
    Resolving dependencies...
    cabal: cannot configure Agda-2.2.10. It requires haskell-src-exts >=1.9.6 &&
    <1.10
    For the dependency on haskell-src-exts >=1.9.6 && <1.10 there are these
    packages: haskell-src-exts-1.9.6. However none of them are available.
    haskell-src-exts-1.9.6 was excluded because haskell-src-exts-1.11.1 was
    selected instead
    haskell-src-exts-1.9.6 was excluded because hlint-1.8.12 requires
    haskell-src-exts ==1.11.*
    

    如果遇到这样的错误,可以尝试手动编辑~/.cabal/world 文件。

    【讨论】:

    • 成功了!不完美..但几乎。它没有获得所有包的所有依赖项,并且生成的文档没有正确的索引或指向源的链接,但与根本没有任何本地文档相比,这是一个很大的改进。谢谢!
    • 是的,世界文件只列出手动安装的包,所以自动安装的依赖不会重新安装(除非Hackage上有新版本)。
    • @monadic 谢谢,已修复。我在考虑阴谋集团的版本。
    【解决方案2】:

    请注意cabal install --only-dep --reinstall does not work

    如果你使用的是沙盒,你可以这样做

    cabal sandbox delete
    cabal sandbox init
    cabal install -j --only-dep --enable-documentation
    

    -j 选项允许它并行构建。

    【讨论】:

      【解决方案3】:

      你可以在 bash 中尝试这样的事情。

      for pkg in `ghc-pkg list --simple`
      do
      cabal install $pkg --reinstall
      done
      

      但我真的不知道,这是否是个好主意。

      【讨论】:

      • 它会尝试重新安装ghcbase等。不要尝试;)
      • 您可以使用ghc-pkg --simple --user 仅列出用户安装的软件包。
      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多