Haskell之Yesod开发–边踩坑边开发(3)

来源:互联网 发布:php管理软件 编辑:程序博客网 时间:2024/05/18 02:49

今天我们来认识一下yesod-bin
从一个干净的环境下进行如下安装步骤,以windows为例

  1. 安装haskell-platform(你可以手动安装cabal和ghc)
  2. 更新cabal。 cabal update
  3. 更新caball-install。 cabal install –global cabal-install 记得一定要带上global参数,否则你的更新只是在当前的cabal环境中,并没有什么luan用
  4. 切换到一个目录下(例如c:\lib\yesod) 这个目录会成为你的yesod的主目录,就像jdk一样
  5. 执行cabal sandbox init 我们使用沙盒技术,来将所需要的依赖都安装在此目录中
  6. 这里是可以复制一个叫做cabal.config的文件的,但是我尝试过两个链接https://www.stackage.org/nightly-2015-05-28和http://www.stackage.org/lts/cabal.config,反而会引起yesod安装不成功,故跳过此步
  7. 安装yesod-bin。 cabal install yesod-bin (在http://blog.pangyanhan.com/haskell/2013-11-31-using-cabal-sandbox-libraries.html这里,第7步和第8步是相反的,但是我按照他说的安装不了,倒置之后可以成功)
  8. 安装yesod。 cabal install yesod (觉得没什么luan用,但保险起见还是安装一下)
  9. 设置环境变量,将c:\lib\yesod.cabal-sandbox和c:\lib\yesod.cabal-sandbox\bin增加到path中,你应该会注意到在\bin下面有一个yesod.exe.对的,我们接下来主要使用这个东西
  10. 现在进入到你的工程目录中
  11. 执行yesod init 按提示生成你需要的工程种类。我这里选择了simple
  12. 现在可以http://www.yesodweb.com/book/basics 这里的Helloworld来测试一下。
    Done

接下来我们想搞搞数据库方面。按照http://www.yesodweb.com/book-1.4/persistent第一段代码,实验一下。

>runHaskell -package-db=c:\lib\yesod\.cabal-sandbox\i386-windows-ghc-7.8.3-packages.conf.d Db 

不出意外的话,你会收到一条Error信息,提示Database.Persist.Sqlite找不到,那我们回来安装一下

切换到c:\lib\yesod,执行 cabal install persistent-sqlite
重新执行。

Done!

如果你想尝试mysql的连接,可以使用yesod init 来生成带有mysql的项目,然后执行

runHaskell -package-db=c:\lib\yesod\.cabal-sandbox\i386-windows-ghc-7.8.3-packages.conf.d app/main

会提示你,ClassyPrelude.Yesod,Database.Persist.MySql,Yesod.Static,Yesod.Jesmini没有安装
还是回到c:\lib\yesod目录
执行cabal install yesod.static 可以消除Yesod.static和Yesod.Jesmini的错误
但是当你安装cabal install persistent-mysql时,会提示你需要linux环境来编译pcre-light包。

0 0