`堆栈构建`与Yesod的问题

时间:2016-01-10 12:26:14

标签: haskell yesod haskell-stack

我正在尝试在干净的(新的)VPS服务器上构建一个基于Yesod的新项目,该服务器在Ubuntu Trusty x86_64上运行。

如果问题很重要,这里是内存信息:

me@user:~/proj-web01$ free -h
            total       used       free     shared    buffers     cached
Mem:        1.0G         46M        977M     8.8M      0B          11M
-/+ buffers/cache:       35M        988M
Swap:          0B         0B          0B

这是堆栈项目的cabal文件的一部分:

library
  hs-source-dirs:      src
  exposed-modules:     Lib
  build-depends:       base >= 4.7 && < 5
  default-language:    Haskell2010

executable proj-web01-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base, yesod
                     , proj-web01
  default-language:    Haskell2010

除了yesod之外,依赖项中还有其他包,当我stack build没有在依赖项中添加yesod时,各种包正常下载并且一切看起来都很好 - 当然除了构建无法完成,因为yesod也是需要。

但是当我添加yesod依赖项列表时,我收到一条Progress: 0/96Killed错误消息。如果依赖项列表中存在其他包,则似乎并不重要。这是stack build --verbose的转储:

me@user:~/proj-web01$ stack build --verbose

Version 1.0.0, Git revision 3bc26237b5b3c387b8fd564459ea4dd88fd58b30 (2939 commits) x86_64
2016-01-10 04:30:53.022676: [debug] Checking for project config at: /home/me/proj-web01/stack.yaml @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Config src/Stack/Config.hs:577:9)
2016-01-10 04:30:53.023099: [debug] Loading project config file stack.yaml @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Config src/Stack/Config.hs:600:13)
2016-01-10 04:30:53.024852: [debug] Run process: ldd /usr/bin/stack @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.037163: [debug] Trying to decode /home/me/.stack/build-plan-cache/x86_64-linux/lts-4.0.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:53.057650: [debug] Success decoding /home/me/.stack/build-plan-cache/x86_64-linux/lts-4.0.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
2016-01-10 04:30:53.057869: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:53.407750: [debug] Success decoding /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
2016-01-10 04:30:53.440540: [debug] Run process: ghc --numeric-version @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.498901: [debug] Run process: ghc-pkg --no-user-package-db field --simple-output Cabal version @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.536509: [debug] Run process: ghc-pkg --no-user-package-db list --global @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.567473: [debug] Checking resolver: lts-4.0 @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Build.Source src/Stack/Build/Source.hs:164:17)
2016-01-10 04:30:53.567752: [debug] Trying to decode /home/me/.stack/build-plan-cache/x86_64-linux/lts-4.0.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:53.584895: [debug] Success decoding /home/me/.stack/build-plan-cache/x86_64-linux/lts-4.0.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
2016-01-10 04:30:53.597807: [debug] Run process: ghc-pkg --global --no-user-package-db dump --expand-pkgroot @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.667493: [debug] Ignoring package haskeline due to wanting version 0.7.2.2 instead of 0.7.2.1 @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Build.Installed src/Stack/Build/Installed.hs:189:5)
2016-01-10 04:30:53.668492: [debug] Ignoring package terminfo due to wanting version 0.4.0.2 instead of 0.4.0.1 @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Build.Installed src/Stack/Build/Installed.hs:189:5)
2016-01-10 04:30:53.668681: [debug] Ignoring package Cabal due to wanting version 1.22.6.0 instead of 1.22.5.0 @(stack_Jo7PUTL0uTIFJF98jKr0KI:Stack.Build.Installed src/Stack/Build/Installed.hs:189:5)
2016-01-10 04:30:53.669068: [debug] Run process: ghc-pkg --user --no-user-package-db --package-db /home/me/.stack/snapshots/x86_64-linux/lts-4.0/7.10.3/pkgdb dump --expand-pkgroot @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.756455: [debug] Run process: ghc-pkg --user --no-user-package-db --package-db /home/me/proj-web01/.stack-work/install/x86_64-linux/lts-4.0/7.10.3/pkgdb dump --expand-pkgroot @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:53.793549: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:54.256386: [debug] Success decoding /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
2016-01-10 04:30:54.590810: [debug] Run process: ghc-pkg --no-user-package-db list --global @(stack_Jo7PUTL0uTIFJF98jKr0KI:System.Process.Read src/System/Process/Read.hs:267:3)
2016-01-10 04:30:54.622680: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:54.623042: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:54.691642: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:54.912320: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:54.952101: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.012247: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.092340: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.332220: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.451634: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.591685: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:55.755769: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:56.328004: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:56.492233: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:56.672429: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:56.872068: [debug] Trying to decode /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:55:5)
2016-01-10 04:30:57.092262: [debug] Success decoding /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
2016-01-10 04:30:57.331815: [debug] Success decoding /home/me/.stack/indices/Hackage/00-index.cache @(stack_Jo7PUTL0uTIFJF98jKr0KI:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:64:13)
Progress: 0/96Killed

我在这些输出消息中看不到任何内容,这些消息提供了最后发生的事情的线索Progress: 0/96Killed,没有任何警告,没有......我在网上搜索了类似的问题,但找不到任何问题,而且我我坚持了。

我的问题:我应该寻找什么,我还应该注意什么?我应该做一个测试,让我知道问题可能来自哪里?谢谢。

==编辑==

事实上,重现这个问题要简单得多:

me@user:~/proj-web00$ stack install yesod
Progress: 0/95Killed
me@user:~/proj-web00$ 

安装其他较小的包可以正常工作(例如stack install csv ...)

根据Sibi的建议,我尝试增加VPS上的交换空间,但显然在用户级别(U&L discussion)不允许这样做。围绕此限制有hacks,但在尝试安装yesod时似乎没有任何改变。

1 个答案:

答案 0 :(得分:1)

这不是一个很好的技术解决方案,但我更改了VPS提供程序,运行相同的操作系统和相同的明显规格,我很容易stack build所有内容(包括yesod套件)。

新的VPS服务提供商允许用户基础交换,但我已经检查过它没有必要,我仍然可以在没有交换文件的情况下进行编译(但显然,它的速度较慢)。