Happstack をインストールして使用したいのですが、10 分もかからず、1 日中悩まされていました。最初に、私は Cabal と格闘しなければなりませんでしたが、最終的にはそれを削除し、新しいコピーをインストールして更新しました。
# I use Fedora 16...
yum remove cabal-install
...
yum install cabal-install
...
cabal update
...
# I was told that a new version was available.
cabal install cabal-install
...
cabal install happstack-server
これらのコマンドはどれも失敗しませんでした (少なくとも、失敗したという印象はありませんでした)。
インストールが完了したので、 Crashcourse ガイドにある最初の簡単な例をビルドしてみることにしました。
私はそれを次のように書いています:
-- server.hs
module Main where
import Happstack.Server (nullConf, simpleHTTp, toResponse, ok)
main :: IO()
main = simpleHTTP nullConf $ ok "Hello World!"
次のコマンドラインを使用してGHCでコンパイルしようとすると:
ghc --make -threaded server.hs -o server
次のエラーが表示されます。
server.hs:3:8:
Could not find module `Happstack.Server':
Use -v to see a list of the files searched for.
提案された-v
オプションを使用すると、次のようになります。
Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4
Using binary package database: /usr/lib/ghc-7.0.4/package.conf.d/package.cache
wired-in package ghc-prim mapped to ghc-prim-0.2.0.0-6bf7b03ebc9c668817e4379b6796c0c2
wired-in package integer-gmp mapped to integer-gmp-0.2.0.3-4c5ab8b517f0b5d4ecf2153d5dfb7f41
wired-in package base mapped to base-4.3.1.0-4582a5bc64f22f03f6d960b4f15c981f
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.5.0.0-958de6d18727479331372229849ac6b8
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags: -static
*** Deleting temp files:
Deleting:
*** Deleting temp dirs:
Deleting:
ghc: no input files
正直なところ、私はそれを解釈するのに苦労しています。とにかく、私はグーグルに行く時だと思いました(再び!)それは私をこの同様の質問に導きました(これは厄介で、ちなみにあまり役に立ちません...)、GHCiにモジュールをロードしようとすることを提案しました。
私はそれを試してみましたが、驚いたことに、これはうまくいきます:
> :m Happstack.Server
> simpleHTTP nullConf $ ok "Hello World!"
>
> ...MODULE LOADING INFORMATION HERE...
これと同様に:
> :l server
> main
どちらも実行し、本来の動作をします。
要するに、これは奇妙です。Cabal は面倒です。基本的な Haskell ツールセットの経験はあまりありません (まだ)。
誰でもこれを修正する方法について何か考えがありますか? 前もって感謝します!:)