首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存不足的安装准则

内存不足的安装准则
EN

Stack Overflow用户
提问于 2017-09-11 01:41:11
回答 2查看 796关注 0票数 3

我在一个有768 MB内存和512 MB交换空间的容器上运行。我不能增加这两种情况。cabal install criterion总是给

代码语言:javascript
复制
Failed during the building phase.
The exception was: ExitFailure (-9)
This may be due to an out-of-memory condition.

Compiling Criterion.Types期间。有什么办法可以绕过这件事吗?还是我必须在没有标准的情况下做下去?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-11 04:46:12

在GHC上设置RTS标志以限制其内存使用(--ghc-options="+RTS -M600M"),并避免并行运行多个作业(-j1)。

票数 9
EN

Stack Overflow用户

发布于 2022-01-18 05:44:26

回答@DavidAzar对答案的评论:

@李耀夏的解决方案奏效了,但后来我遇到了更多的问题。这都是我从我的粗略笔记,因为我跟踪我的方式通过问题。因此,可能会有一个更精简的解决方案。

实际上,它编译了所有的东西,但是cabal --version仍然是2.4,而不是3.4。也许它不在路上?

代码语言:javascript
复制
Warning: could not create a symlink in /root/.cabal/bin for cabal because 
the file exists there already but is not managed by cabal. You can create a symlink for 
this executable manually if you wish. The executable file has been installed at /root/.cabal/bin/cabal

这里似乎有一个解决方案:https://stackoverflow.com/a/17030330/52236,但在重新执行阴谋安装和重新编译过程之前,我必须弄清楚如何删除现有的符号链接。

这里也有这样的解决方案,我将首先尝试:updating cabal-install, but version is not changed

  • 运行unminimize从bash,安装所有正常的东西到ubuntu。
  • 首先,在/bin中,创建一个名为/ cabal的文件夹,然后将这个阴谋可执行文件复制到这个旧文件夹中。然后从/bin文件夹中删除阴谋。
  • 然后创建一个指向新的阴谋可执行文件的新符号链接: ln -s /root/. cabal /bin/阴谋集团
  • 这会让阴谋3.4在进行阴谋版本时出现。
  • 接下来,安装git: apt安装git。
  • 然后转到plutus-先驱程序/代码/ Then 01/文件夹,并输入cabal build
  • 它从git下载了很多东西,然后失败了。 警告:请求的索引状态2021-02-24T00:00:00Z比'hackage.haskell.org‘更新!回到旧州(2021-02-23T23:53:53Z)。解决dependencies...cabal:无法解决依赖关系:__尝试:Win32 32-Network0.1.0.0(用户目标) __1尝试:base-4.12.0.0/install-4.12.0.0(依赖Win32 32-网络) __2下一步目标:plutus-先驱程序-星期01(用户目标) __2拒绝:plutus-先驱-程序-周01-0.1.0.0(冲突:base=4.12.0.0/安装-4.12.0.0,冥王星-先驱-程序-周01 =>base^>=4.14.1.0) __2失败(跳伞,冲突集:基座,冥王星-先驱-程序-周01) 在详尽地搜索了其余的依赖树之后,这些都是我最难以实现的目标: base、Win32 32- rest、plutus-先驱程序-week01 01。
  • 我从Stackoverflow上得到了一个建议,Plutus-Pioneer代码可能需要ghc 8.10,我现在使用的是8.6.5版本,所以下一步是找出如何更新它。
  • 在获得ghc 8.10之前,我显然需要安装ghcup,以非root用户的身份运行它?: curl --proto '=https‘--tlsv1.2 -sSf https://get-ghcup.haskell.org \ sh
  • 这启动了安装,但失败了,因为我没有安装“make”。运行以下命令: apt-获取安装制作
  • 然后重新运行curl命令。curl输出显示正在安装GHC8.10,但是完成后,ghc --version仍然输出8.6.5。另一个符号链接问题?
  • 我在输出中发现了这个问题: 为了运行ghc和阴谋,您需要调整路径变量。您可能想要在shell配置中源“/root/..ghcup/env”来这样做(例如~/..bashrc)。
  • 它还可能需要弄清楚如何指定使用哪个版本的ghc。
  • 我需要更新bin文件夹中的simlink,以便获得正在使用的ghc的正确版本,还有以下要更新的其他链接:
代码语言:javascript
复制
lrwxrwxrwx 1 root root   9 Mar 24  2020 ghc -> ghc-8.6.5
-rwxr-xr-x 1 root root 226 Mar 24  2020 ghc-8.6.5  
lrwxrwxrwx 1 root root  13 Mar 24  2020 ghc-pkg -> ghc-pkg-8.6.5
-rwxr-xr-x 1 root root 258 Mar 24  2020 ghc-pkg-8.6.5  
lrwxrwxrwx 1 root root  10 Mar 24  2020 ghci -> ghci-8.6.5
-rwxr-xr-x 1 root root  55 Mar 24  2020 ghci-8.6.5

首先,为ghcup创建了一个新的符号链接:

代码语言:javascript
复制
ln -s /root/.ghcup/bin/ghcup ghcup

(虽然我记不起我需要的是什么?)

  • 接下来,更新/bin文件夹中列出的所有3个符号链接的ghc符号链接: mv -T ghc ghc - -s /root/..ghcup/bin/ghc老链接
  • 这可以让新版本的ghc出现在bash中。
  • 现在尝试构建,它下载并开始构建很多东西,但是现在这个错误发生了: 阴谋集团:未能建立cborg-0.2.4.0 (这是冥王星-先驱-程序-周01-0.1.0.0)。生成过程被终止(i.e.SIGKILL)。造成这种情况的典型原因是内存不足(例如,操作系统使用大量内存杀死了一个进程)。

解决方案: Docker -> Preferences -> Resources ->增加内存和交换空间。在我的例子中,从2-8GB内存,从1到2GB交换空间。

现在,它为第一周构建了Plutus先锋代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46147137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档