【问题标题】:cabal-dev install Happstack-server howcabal-dev 安装 Happstack-server 如何
【发布时间】:2013-12-29 02:04:50
【问题描述】:

这就是我所做的:

  1. makdir happstack_01

  2. cabal-dev 安装 happstack-server

  3. 用“import Happstack.Server (nullConf, simpleHTTP, toResponse, ok)”编写典型的helloworld.hs

  4. ghc -threading HelloWorld.hs -o helloworld

我得到了: 找不到模块“Happstack.Server”

这显然是错误的。但更令我惊讶的是,谷歌上没有这样简单的教程。

任何直觉都会很棒!

【问题讨论】:

  • 你使用的是什么版本的阴谋集团?您尝试安装哪个版本的 Happstack?最新版本的 cabal 添加了“沙盒”功能,非常适合安装项目特定的包,你试过了吗?
  • 是的,我尝试了 'cabal sandbox init',然后也尝试了 'cabal install happstack-server',然后 ghc 给出了同样的错误。我检查了 .cabal-sandbox 并且 happstack 在那里。所以我猜 ghc 根本没有检查 sanboxed 库?
  • GHC 本身不检查沙箱,您应该编写一个 .cabal 文件并使用cabal build 来构建您的项目。

标签: haskell cabal-dev


【解决方案1】:

这是一套非常简单的、Cabalized 和沙盒构建的说明。

$ mkdir happstack01 && cd happstack01/
$ cabal init .
$ <CR><CR><CR><CR><CR><CR><CR><CR><CR>   1   <CR><CR><CR>
$ mkdir src
$ touch src/Main.hs
$ vi happstack-01.cabal

happstack01.cabal

...

library
  exposed-modules:
    Main
  build-depends:       base >=4.6 && <4.7
                     , happstack-server
  hs-source-dirs:      src
  default-language:    Haskell2010

然后

$ cabal sandbox init
$ cabal install --only-dependencies
$ vi src/Main.hs

src/Main.hs

import Happstack.Server

main :: IO ()
main = simpleHTTP nullConf $ return "Hello sandbox!"

在沙盒构建时喝杯咖啡。

$ cabal repl
> main

在此之后,我通常会在 Cabal 文件中添加一个 executable 条目,然后开始构建服务器。

【讨论】:

  • 谢谢!正是我想要开始的。
【解决方案2】:

因为你想要一个小教程,所以我正在写下我是如何让它工作的。不过我用的是 cabal 而不是 cabal-dev(如果你在乎,请告诉我,我可以多玩一些)....

> cabal install happstack-server
> mkdir sample
> cd sample

然后我创建了文件sample.hs

import Happstack.Server

main = simpleHTTP nullConf $ return "hello, world!"

我编译了它

> ghc sample.hs

(这似乎是您在查找库时遇到问题的地方......您可能需要检查 ~/.ghc//package.conf.d/happstack-server-7.3.1-.conf 和 ~ /.cabal/packages/hackage.haskell.org/happstack-server/ 存在以验证下载)

然后运行服务器

./sample

并使用curl 验证它是否有效

> curl http://127.0.0.1:8000

这应该回应

hello, world!

【讨论】:

  • 感谢您抽出宝贵时间编写此基本操作指南。但我想要一个沙盒环境,我认为 GHC 还没有检查沙盒库。
【解决方案3】:

好的,我想通了。 GHC 不会重新识别本地 sanboxed 库。至少我的 GHC --version 7.6.3 没有。因此,我将不得不对我的项目进行 cabalize 以使沙盒库正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多