cabal-dev установить Happstack-сервер как
Вот что я сделал:
макдир happstack_01
cabal-dev установить happstack-сервер
написать типичный helloworld.hs с помощью "import Happstack.Server (nullConf, simpleHTTP, toResponse, ok)"
ghc -поточный HelloWorld.hs -o helloworld
и я получил: Не удалось найти модуль `Happstack.Server'
Это так очевидно неправильно. Но что меня больше удивляет, так это то, что в Google нет учебника для такой простой вещи, как эта.
Любая интуиция была бы потрясающей!
3 ответа
Это набор инструкций для очень простой, кабализованной и изолированной сборки.
$ 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
После этого я обычно добавляю executable
войдите в файл Cabal и начните строить сервер из этого.
Так как вы хотели небольшой учебник, я пишу, как я только что получил его на работу. Я использовал 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 не будет регонизировать местных sanboxed библиотек. по крайней мере мой GHC - версия 7.6.3 этого не делает. Так что мне придется кабализовать свой проект, чтобы заставить песочниц работать.