Linux “为什么?”;流浪汉ssh-c';阴谋集团建造'&引用;生成一个空二进制文件?
我正在使用Vagrant在Linux上构建Haskell Cabal项目。当我在Vagrant VM中构建阴谋集团时,生成的二进制文件是好的。当我尝试使用Linux “为什么?”;流浪汉ssh-c';阴谋集团建造'&引用;生成一个空二进制文件?,linux,haskell,vagrant,cabal,Linux,Haskell,Vagrant,Cabal,我正在使用Vagrant在Linux上构建Haskell Cabal项目。当我在Vagrant VM中构建阴谋集团时,生成的二进制文件是好的。当我尝试使用vagrant ssh-c'cabal build'从主机编写构建脚本时,生成了一个大小为零的二进制文件。编译显然可以工作,但我认为一旦链接器启动,流浪外壳就会关闭并终止链接。为什么会发生这种情况 在谷歌上搜索了几次后,我只能找到一个 在IRC的帮助下,我们能够确定这项工作: sshvagrant@127.0.0.1-第2222页-i.vagr
vagrant ssh-c'cabal build'
从主机编写构建脚本时,生成了一个大小为零的二进制文件。编译显然可以工作,但我认为一旦链接器启动,流浪外壳就会关闭并终止链接。为什么会发生这种情况
在谷歌上搜索了几次后,我只能找到一个
在IRC的帮助下,我们能够确定这项工作:
sshvagrant@127.0.0.1-第2222页-i.vagrant.d/unsecure_private_key“阴谋集团建造”
下面是在调试模式下转储的ssh命令vagrant ssh
,该命令不起作用:
[”vagrant@127.0.0.1“,”-p“,“-o”,“Compression=yes”,“-o”,“dsaaauthentication=yes”,“-o”,“LogLevel=FATAL”,“-o”,“strithhostkeychecking=no”,“-o”,“UserKnownHostsFile=/dev/null”,“-o”,“identiesonly=yes”,“-i”,“.vagrant.d/unsecure\u private\u key”,“-t”,“bash-l-c'pwd”
使用演绎法,我发现ssh-t
是问题的根源。从文档中:
所以现在的问题是为什么-t
会导致阴谋集团建造失败
运行cabal build-v3
时会出现错误/usr/bin/ghc返回ExitFailure 9
,我认为这意味着内存不足。内存不足时,OOM正在杀死ghc。ssh-t
标志显然足以使其超过阈值。通过/var/log/syslog
确认。解决方案是简单地为VM分配更多内存。感谢Freenode上的tibber和teukka
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.
Multiple -t options force tty allocation, even if ssh has no local tty.