缺少linux-mint上的chart-cairo依赖项

时间:2014-12-02 02:06:48

标签: haskell charts cairo gtk2hs

我正在努力在Linux Mint 17上安装GTK / gtk2hs绑定。

我第一次遇到这个问题的时候是我试图在Haskell中获得glade支持。

有同样的问题,但它纯粹是为了好玩,所以我让它成为现实。

这次我试图用Haskell Chart来形象化图形。

问题出现在第四步cabal install chart-cairo

我正在使用GHC版本7.6.3,cabal版本1.16.0.2,gtk2hs-buildtools版本0.12.4-2ubuntu1(来自软件包管理器),gtk2hsC2hs版本0.13.6(这是林间空地需要的地方> = 0.13.8,但我找不到更新的版本)

到目前为止我尝试过的事情:

  1. 从软件包管理器下载gtk2hs-buildtools后,我更新了cabal并从命令行安装了工具

  2. 在$ PATH的前面添加了“$ HOME / .cabal / bin”(正确安装了gtk之后)

  3. cabal install chart-cairo让我收到此错误消息

    Resolving dependencies...    
    [1 of 2] Compiling SetupWrapper     ( /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/SetupWrapper.hs, /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/SetupWrapper.o )    
    [2 of 2] Compiling Main             ( /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/setup.hs, /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/Main.o )    
    Linking /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/setup ...    
    [1 of 2] Compiling Gtk2HsSetup      ( Gtk2HsSetup.hs, dist/setup-wrapper/Gtk2HsSetup.o )    
    [2 of 2] Compiling Main             ( SetupMain.hs, dist/setup-wrapper/Main.o )    
    Linking dist/setup-wrapper/setup ...    
    Configuring cairo-0.13.0.2...    
    Building cairo-0.13.0.2...    
    Preprocessing library cairo-0.13.0.2...    
    [ 1 of 18] Compiling Graphics.Rendering.Cairo.Matrix ( dist/build/Graphics/Rendering/Cairo/Matrix.hs, dist/build/Graphics/Rendering/Cairo/Matrix.o )    
    [ 2 of 18] Compiling Graphics.Rendering.Cairo.Types ( dist/build/Graphics/Rendering/Cairo/Types.hs, dist/build/Graphics/Rendering/Cairo/Types.o )    
    [ 3 of 18] Compiling Graphics.Rendering.Cairo.Internal.Utilities ( dist/build/Graphics/Rendering/Cairo/Internal/Utilities.hs, dist/build/Graphics/Rendering/Cairo/Internal/Utilities.o )    
    
    Graphics/Rendering/Cairo/Internal/Utilities.chs:24:42:    
        Module `Data.Text.Foreign' does not export `withCStringLen'    
    Failed to install cairo-0.13.0.2    
    cabal: Error: some packages failed to install:    
        Chart-cairo-1.3.2 depends on cairo-0.13.0.2 which failed to install.    
        cairo-0.13.0.2 failed during the building phase. The exception was:    
        ExitFailure 1    
    
  4. pkg-config cairo --modversion告诉我我的版本是1.13.1(比0.13.0.2更新?)

2 个答案:

答案 0 :(得分:1)

我只是亲自尝试过,并遇到了一些我能够克服的障碍......也许你遇到了同样的问题。

由于某种原因,某些依赖项不会自动安装。虽然手动安装很容易。试试这个:

cabal install alex
cabal install gtk2hs-buildtools
cabal install cairo
cabal install chart-cairo

通常,如果您在cabal输出中看到错误消息,如帖子中的以下行

Failed to install cairo-0.13.0.2   

手动尝试安装是个好主意。虽然应该解决依赖关系,但我遇到了许多他们不知道的情况(我认为它可能与cabal安装命令行工具有关,但从未完全研究过它)。在这种特殊情况下,这就是我所做的,但我不得不上链4次......

答案 1 :(得分:0)

  1. 正在使用旧版本的text(也会导致cabal选择旧版cairo且版本为build-deps)。尝试将--constraint='cairo>=0.13.0.5'添加到您的cabal安装中。这也应该迫使cabal选择较新版本的text

  2. pkg-config cairo --modversion给出了实际cairo库的版本。 0.13.0.2是包装cairo的Gtk2Hs haskell包的版本(实际的cairo版本包装取决于安装的内容)