【发布时间】:2011-11-21 22:10:44
【问题描述】:
我的最终目标是让 Clojure/Swank/Slime 在 Mac OS X 上通过 Emacs 运行。为了实现这一目标,我将各种模式安装到 Emacs 中(我正在尝试 Aquamacs 和 EMacsforMacOsx)。我查看了这里和网络上其他地方的一些帖子,目前的建议似乎是使用 ELPA。
我从here 获取了我认为是最新的 package.el(用于 Emacs 23.x),我可以使用它来安装 clojure-mode。正如我想知道一切正常,我还尝试删除已安装的软件包。当我这样做时(我使用 package-list-packages,D 删除,X 执行)我收到以下错误:
condition-case: Wrong type argument: stringp, #[(directory &optional recursive)
...
...
[directory handler recursive delete-by-moving-to-trash directory-files-no-dot-files-regexp
directory-file-name expand-file-name find-file-name-handler delete-directory directory-files
...] 7 1863281 (let ((dir (expand-file-name (read-file-name "Delete directory: " default-
directory default-directory nil nil)))) (list dir (if (directory-files dir nil directory-files-no-dot-files-regexp) (y-or-n-p (format "Directory `%s' is not empty, really delete? " dir)) nil)))]
...s 是一堆十六进制字符
这发生在我尝试过的两个 Emacs 版本上。
我使用的是正确版本的 package.el。
如果是这样,我该怎么做才能解决这个问题?
谢谢
【问题讨论】:
-
看起来您使用的
package.el与周围的 Emacs 不兼容。 Aquamacs 与package.el捆绑在一起,因此您可能不应该使用您自己的版本。我使用来自 EmacsForMacOSX 的夜间构建,它也有一个内置的package.el。您似乎已经获取了合理版本的软件包,但您需要提供更多信息来帮助诊断问题所在。例如您使用的是哪个 Emacs 版本。 -
感谢您的评论。在我的 .emacs 文件中,如果我没有在加载路径中包含我的 package.el (需要'package),那么我会得到“文件错误:无法打开加载文件,包”我已经查看了 Emacs.app 和 Aquamacs.app并且看不到 package.el,它们会位于哪里?至于版本,我使用的是 23.3 (9.0) 的 EmacsForMac 和 2.4 的 Aquamacs
-
package.el仅包含在 Emacs 24 中(意思是夜间构建,而不是 23.x 系列)。我仔细检查了 Aquamacs 的情况,结果我弄错了; package.el 没有与它捆绑在一起。现在回想起来,我想我可能在 Emacs 24 升级过时的包时看到了类似的错误,在此期间 package.el 提示删除过时的版本。我会留意它是否再次发生,但与此同时,您可以手动或从 dired 删除有问题的包目录。 -
对于任何剩余的 emacs-23 用户:与 emacs-23 兼容的最新版本 package.el 的新 URL 是:git.savannah.gnu.org/gitweb/…>