gpt4 book ai didi

smlnj交互系统: fatal error

转载 作者:行者123 更新时间:2023-12-02 20:33:07 24 4
gpt4 key购买 nike

apt-get install smlnj 并尝试从终端调用 sml 后,我的 Chromebook 上的 Crouton chroot 出现奇怪的错误,但我没有遇到过这个错误能够在其他地方找到:

$ sml
/usr/lib/smlnj/bin/sml: Error -- unable to map 1179648 bytes, errno = 1
/usr/lib/smlnj/bin/sml: Fatal error -- unable to allocate memory object for BIBOP

有什么指导吗?

最佳答案

编辑: 此问题(错误 #120)已在 SML/NJ 版本 110.77 ( release notes ) 中通过启用 MAP_ANONYMOUS 得到修复,而 MAP_ANONYMOUS 以前在 Linux 中不受支持。安装最新版本的 SMLNJ 比下面的解决方案更好,因为它不需要削弱系统的安全性。如果您继续修改 /dev 的权限,建议在每次 session 后删除 exec 权限。

<小时/>

此问题主要在运行 ChrUbuntu 或 Crouton 的 Chromium 操作系统环境中重现,但在其他环境中遇到类似问题的其他用户也可能会发生。

sml 上运行 strace 会在错误输出之前给出此(尝试的)操作:

open("/dev/zero", O_RDONLY)             = 4
mmap2(NULL, 1245184, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 4, 0) = -1 EPERM (Operation not permitted)

根据 mmap(2) 文档,EPERM 表示系统正在尝试在标记为 noexec 的目录中分配具有执行权限的内存。

确实,mount 给出:

...
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=960456k,nr_inodes=240114,mode=755)
...

因此,解决方案是使用 exec 权限重新挂载 /dev:

$ sudo mount -o remount,exec /dev
$ sml
Standard ML of New Jersey v110.75 [built: Thu May 9 05:41:01 2013]
-

关于smlnj交互系统: fatal error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com