无法使用Mac端口Clozure Common Lisp执行`(要求“COCOA””)

无法使用Mac端口Clozure Common Lisp执行`(要求“COCOA””),cocoa,common-lisp,ccl,Cocoa,Common Lisp,Ccl,我已经安装了带有Mac端口的软件包ccl。现在我想用可可桥 Welcome to Clozure Common Lisp Version 1.8 (DarwinX8664)! ? (require "COCOA") > Error: Permission denied : #P"/opt/local/share/ccl/1.8/temp bundle64.app/Contents/252752233492590994.tem" > While executing: %CREATE-

我已经安装了带有Mac端口的软件包ccl。现在我想用可可桥

Welcome to Clozure Common Lisp Version 1.8  (DarwinX8664)!
? (require "COCOA")
> Error: Permission denied : #P"/opt/local/share/ccl/1.8/temp bundle64.app/Contents/252752233492590994.tem"
> While executing: %CREATE-FILE, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

如果我用
sudo
启动
ccl64
,它可以正常工作。但我希望能够作为一个普通用户做到这一点。我该怎么做呢?

如果你在Mac上,运行Clozure CL最简单的方法就是从苹果的Mac应用商店加载它

这样,它就可以安装在Applications文件夹中并运行Cocoa应用程序,因为它是提供的。但接下来您将运行基于Cocoa的IDE版本的CCL

如果您从MacPorts安装CCL,我猜该应用程序不存在。您需要拥有目录的权限才能创建必要的文件

否则,我将从Clozure的存储库中安装一个新的CCL:

而在
~
中可能是实现你想要的最直接的方法

如果希望使用MacPorts管理ccl(而不是上面的svn方法),请运行

sudo chown -R $USER /opt/local/share/ccl
请注意,后一种情况确实让我有点不舒服,因为如果尝试
sudo-port卸载ccl
,MacPorts不会完全删除share/ccl目录,可能是因为
(require:cococoa)
调用将编译的二进制文件添加到MacPorts不跟踪的目录中

要使MacAppStore版本正常工作,您可能需要找到埋在ccl.app目录中的ccl二进制文件,然后为slime启动它。也许这也是一个不错的选择

注意,您这样做的任何方式,一旦您
(require:cocoa)
,您将在slime运行时弹出单独的cocoa侦听器。一旦它打开,我就把它移到一边。如果您在
(require:cocoa)
之后找到抑制此侦听器窗口的方法,我很想知道这一点


但我推荐第一种(svn)方法。这就是我在SLIME中使用的版本,也是Clozure在其下载页面上推荐的版本。

此版本会在新窗口中打开一个REPL,因此无法与SLIME配合使用。有没有办法让Emacs的SLIME很好地实现这一点?我相信在应用程序首选项中的General下有一个选项可以启动一个swank监听器。在mac上,你必须手动安装CCL,如下@Clayton Stanley所示。
sudo chown -R $USER /opt/local/share/ccl