Haskell平台+ Cabal地狱+套餐位置?

时间:2013-09-12 06:32:39

标签: haskell centos configure cabal cabal-install

我最近按照这些步骤在CentOS 6.4上安装了Haskell

  1. wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2&& tar -xf ghc-7.6.3-x86_64-unknown-linux.tar.bz2&& cd ghc-7.6.3&& ./configure&& make install&& cd ..
  2. yum install freeglut-devel mesa-libGLU-devel mesa-libGL-devel
  3. wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz&& tar -xf haskell-platform-2013.2.0.0.tar.gz&& cd haskell-platform-2013.2.0.0&& ./configure&&制造&& make install
  4. 请注意我没有介绍任何花哨的旗帜。结果是以下包位于 / usr / local / lib

    async-2.0.1.4
    attoparsec-0.10.4.0
    case-insensitive-1.0.0.1
    cgi-3001.1.7.5
    fgl-5.4.2.4
    GLURaw-1.3.0.0
    GLUT-2.4.0.0
    hashable-1.1.2.5
    haskell-src-1.0.1.5
    html-1.0.1.2
    HTTP-4000.2.8
    HUnit-1.2.5.2
    mtl-2.1.2
    network-2.4.1.2
    OpenGL-2.8.0.0
    OpenGLRaw-1.3.0.0
    parallel-3.2.0.3
    parsec-3.1.3
    primitive-0.5.0.1
    QuickCheck-2.6
    random-1.0.1.1
    regex-base-0.93.2
    regex-compat-0.95.1
    regex-posix-0.95.2
    split-0.2.2
    stm-2.4.2
    syb-0.4.0
    text-0.11.3.1
    transformers-0.3.0.0
    unordered-containers-0.2.3.0
    vector-0.10.0.1
    xhtml-3000.2.1
    zlib-0.5.4.1
    

    以下内容位于 /usr/local/lib/ghc-7.6.3 下:

    array-0.4.0.1
    base-4.6.0.1
    bin-package-db-0.0.0.0
    binary-0.5.1.1
    bytestring-0.10.0.2
    Cabal-1.16.0
    containers-0.5.0.0
    deepseq-1.3.0.1
    directory-1.2.0.1
    filepath-1.3.0.1
    ghc-7.6.3
    ghc-prim-0.3.0.0
    haskell2010-1.1.1.0
    haskell98-2.0.0.2
    hoopl-3.9.0.0
    hpc-0.6.0.0
    integer-gmp-0.5.0.0
    old-locale-1.0.0.5
    old-time-1.1.0.1
    pretty-1.1.1.0
    process-1.1.0.2
    template-haskell-2.8.0.0
    time-1.4.0.1
    unix-2.6.0.1
    

    我将自己定义为cabal-noob,之前,因为我为每个用户安装了haskell,当我进入 cabal地狱时,我曾经删除整个 .cabal 文件夹。这个巫术包的分发让我感到有些不安,因为我觉得我无法像以前一样轻松修复 cabal hell

    1. 为什么这些软件包安装在这些位置?
    2. 如何删除重新安装的整个cabal包?
    3. 哪些安装选项允许我将所有cabal包放入一个文件夹?
    4. (不是教程)是否更好地学习解决阴谋?我听说过ghc-pkg

1 个答案:

答案 0 :(得分:5)

  

为什么这些软件包安装在这些位置?

/usr/local/lib/ghc-7.6.3 包含ghc附带的库。 / usr / local / lib 包含来自“haskell platform”的库

  

如何删除重新安装的整个cabal包?

使用ghc-pkg取消注册 / usr / local / lib 中的库。最好不要使用库 /usr/local/lib/ghc-7.6.3

  

哪些安装选项允许我将所有cabal包放入一个文件夹?

AFAIK没有这样的选择

  

(不是教程)是否更好地学习解决阴谋?我听说过ghc-pkg

在新的约束解算器被引入cabal后,阴谋集团地狱几乎消失了。最后一个cabal-install版本引入了沙箱,以及其他改进措施。我希望在不久的将来,阴谋集团将完全消失。 有时需要通过例如手动解决依赖冲突。使用ghc-pkg取消注册某些包。

  

当我进入阴谋地狱时,我曾经删除整个.cabal文件夹

您应该删除~/.ghc/子文件夹而不是~/.cabal。这是ghc存储包db的地方。使用新的cabal沙箱,您只需要删除沙箱本身(cabal sandbox delete