haskell - 为什么从独占Stackage快照安装Yesod会失败?

标签 haskell docker yesod

我正在尝试学习Yesod,但由于似乎无法安装它而无法下手。为了确保我自己的系统(Mac,Haskell平台)不会影响它,我正在尝试构建一个Docker图像进行播放。这是我的Dockerfile,即使您对Docker一无所知,它也应该很简单看看我在做什么:

FROM ubuntu:14.04

ENV HOME /root
ENV PATH /root/.cabal/bin:$PATH

RUN apt-get update && \
  apt-get install -y ghc ghc-haddock zlib1g-dev curl && \
  cd /tmp && \
  curl http://hackage.haskell.org/package/cabal-install-1.20.0.3/cabal-install-1.20.0.3.tar.gz | tar xzf - && \
  cd cabal-install-1.20.0.3 && \
  sh ./bootstrap.sh && \
  cabal update && \
  sed -i "s%^remote-repo: .*%remote-repo: stackage:http://www.stackage.org/stackage/46bb2d7487546939e22612e7d757f1df5a5163e9%" /root/.cabal/config && \
  cabal update
RUN cabal install alex happy yesod-bin

因此,总而言之,我采用了Ubuntu的准系统,安装了ghc,haddock,zlib头文件和curl,足以从源代码下载并安装cabal-install,然后我按照指定的方式进行操作,然后按照Stackage的说明替换现有的远程仓库Cabal配置中的行带有Stackage快照。

一切似乎都可以完成,但是无法安装yesod-bin:
root@35bacb9e52e1:~# cabal install yesod-bin
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: yesod-bin-1.2.12.4 (user goal)
trying: streaming-commons-0.1.4.2 (dependency of yesod-bin-1.2.12.4)
trying: unix-2.6.0.1/installed-f12... (dependency of
streaming-commons-0.1.4.2)
trying: yaml-0.8.9 (dependency of yesod-bin-1.2.12.4)
next goal: aeson (dependency of yaml-0.8.9)
rejecting: aeson-0.8.0.0 (conflict: unix =>
bytestring==0.10.0.2/installed-4f9..., aeson => bytestring>=0.10.4.0)
Dependency tree exhaustively searched.

我知道那里存在冲突,但是我不知道如何解决它。任何帮助,将不胜感激。

最佳答案

算了,没关系,Ubuntu的GHC是7.6.x,所以可能是:(

关于haskell - 为什么从独占Stackage快照安装Yesod会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719161/

相关文章:

algorithm - 这个上下文无关语言枚举器的伪代码实现是什么?

php - Xdebug 在访问类静态属性时中断

docker - 服务 "postgis"无法在 GitLab CI 中启动

email - 使用 Yesod 将邮件发送到电子邮件地址

haskell - ghc 的 FUN_1_0、FUN_0_1 等闭包类型是什么意思?

haskell - 在 Haskell 中统一类型

mongodb - 选择具有 yesod 持久性的列子集

haskell - 如何安全地分解单一的 mkYesod block

Haskell 函数与 where

bash - 奇怪的字符 docker exec