我正在尝试学习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/