cabal 在 KVM 中的 NixOS 上死亡

cabal 在 KVM 中的 NixOS 上死亡

我在 KVM 上设置了 NixOS 系统并安装了 haskelPlatform 软件包。

一切工作正常,ghci 工作正常,但 cabal 死掉时没有任何有用的错误消息:

[michas@nix:~]$ type -a cabal
cabal is /run/current-system/sw/bin/cabal

[michas@nix:~]$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library 

[michas@nix:~]$ cabal update
Downloading the latest package list from hackage.haskell.org
Aborted

[michas@nix:~]$ cabal update -v3
Downloading the latest package list from hackage.haskell.org
Sending:
GET /packages/archive/00-index.tar.gz HTTP/1.1
Host: hackage.haskell.org
User-Agent: cabal-install/1.16.0.2
Creating new connection to hackage.haskell.org
Received:
HTTP/1.1 200 OK
Date: Thu, 19 Sep 2013 17:28:04 GMT
Server: Apache/2.2.9 (Debian) mod_python/3.3.1 Python/2.5.2
Last-Modified: Thu, 19 Sep 2013 16:01:27 GMT
ETag: "1888006-641488-4e6beaa9663c0"
Accept-Ranges: bytes
Content-Length: 6558856
Content-Type: application/x-tar
Content-Encoding: x-gzip
Downloaded
to /home/michas/.cabal/packages/hackage.haskell.org/00-index.tar.gz
Aborted

[michas@nix:~]$ strace cabal update
[...]
close(9)                                = 0
lstat("/home/michas/.cabal/packages/hackage.haskell.org/00-index.tar5861.tmp",
{st_mode=S_IFREG|0644, st_size=104366080, ...}) = 0
rename("/home/michas/.cabal/packages/hackage.haskell.org/00-index.tar5861.tmp",
"/home/michas/.cabal/packages/hackage.haskell.org/00-index.tar") = 0
--- SIGVTALRM {si_signo=SIGVTALRM, si_code=SI_TIMER, si_pid=0,
si_uid=18, si_value=0} --- rt_sigreturn()                          = 0
--- SIGVTALRM {si_signo=SIGVTALRM, si_code=SI_TIMER, si_pid=0,
si_uid=0, si_value=0} --- rt_sigreturn()                          =
139968722321408
stat("/home/michas/.cabal/packages/hackage.haskell.org/00-index.cache",
{st_mode=S_IFREG|0644, st_size=1058094, ...}) = 0
stat("/home/michas/.cabal/packages/hackage.haskell.org/00-index.tar",
{st_mode=S_IFREG|0644, st_size=104366080, ...}) = 0
stat("/home/michas/.cabal/packages/hackage.haskell.org/00-index.cache",
{st_mode=S_IFREG|0644, st_size=1058094, ...}) = 0 --- SIGVTALRM
{si_signo=SIGVTALRM, si_code=SI_TIMER, si_pid=0, si_uid=0, si_value=0}
--- rt_sigreturn()                          = 0
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 tgkill(5861, 5861,
SIGABRT)             = 0 --- SIGABRT {si_signo=SIGABRT,
si_code=SI_TKILL, si_pid=5861, si_uid=1000} --- +++ killed by SIGABRT
+++ Aborted

[michas@nix:~]$

VM 没有交换区,但有 2GB RAM。中没有提示dmesg

知道发生了什么事吗?

(在基于 VirtualBox 的 VM 上的另一个 NixOS 安装上,这可以正常运行。)

答案1

看:https://stackoverflow.com/questions/3413166/when-does-a-process-get-sigabrt-signal-6

假设您没有发送 SIGABRT 信号,如果我不得不猜测,编译会出错。我会尝试从源代码重新编译。

相关内容