Попытка заставить package.el работать на Mac OS X - PullRequest
1 голос
/ 19 ноября 2011

Моя конечная цель - запустить Clojure / Swank / Slime через Emacs в Mac OS X. Чтобы попытаться это сделать, я устанавливаю различные режимы в Emacs (я пробую и Aquamacs, и EMacsforMacOsx). Я просмотрел несколько постов здесь и в других местах в Интернете, и текущий совет, похоже, заключается в использовании ELPA.

Я взял, как мне кажется, последний package.el (для Emacs 23.x) из здесь , и я могу использовать его для установки clojure-mode. Поскольку я хотел бы знать, что все работает правильно, я также попытался удалить установленные пакеты. Когда я делаю это (я использую пакет-список-пакеты, 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.

Если так, что я могу сделать, чтобы это исправить?

Спасибо

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

спасибо за ввод.Вместо того, чтобы тратить больше времени на это, я перешел на Emacs 24, который дает мне то, что мне нужно.Еще раз спасибо,

Кевин

1 голос
/ 20 ноября 2011

Если у вас есть права package.el (но см. Комментарий sanityinc), явно загрузите этот исходный файл (load-file "..../package.el"), затем выполните M-x debug-on-entry package-delete.Это поместит вас в отладчик, когда вы вызовете эту функцию (которая, кажется, там, где возникает ошибка).Используйте d' to step or c ', чтобы продолжить в отладчике, чтобы следить за оценкой.Храните исходный код в отдельном буфере, чтобы вам было легче следить за ним.

Похоже, что в вызове (delete-directory dir t t) аргумент DIR не является строкой, что означает, что package--dir не вернул каталог (строку).

Кроме того, похоже, что аргументы для вашей версии delete-directory равны (directory &optional recursive).По крайней мере, в версии package.el в Emacs 24 `delete-directory здесь фактически вызывается с 3 аргументами.Но вы не получили ошибочную ошибку числа аргументов, так что, возможно, ваши версии отличаются.

В любом случае, используйте отладчик, чтобы попытаться найти, что пошло не так.Кажется вероятным, что, как предположил sanityinc, у вас несоответствие версий кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...