ELPA / Marmalade сообщает, что «не удается открыть файл загрузки» для ~ / .emacs.d / elpa / archives / -pkg - PullRequest
7 голосов
/ 17 ноября 2011

Я установил Marmalade и скачал несколько интересных пакетов. Но теперь, когда я запускаю Emacs, я получаю эту ошибку:

Cannot open load file: c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg

Если я использую --debug-init, я получаю:

Debugger entered--Lisp error: (file-error "Cannot open load file" "c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg")
load("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg" nil t)
(if (file-directory-p pkg-dir) (load (concat pkg-dir ... "-pkg") nil t))
(let ((pkg-dir ...)) (if (file-directory-p pkg-dir) (load ... nil t)))

package-load-descriptor("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/" "archives")
(lambda (name) (package-load-descriptor dir name))("archives")
mapc((lambda (name) (package-load-descriptor dir name)) ("anything-1.287" "anything-  complete-1.86" "anything-config-0.4.1" "archive-contents" "archive-contents~" "archives" "auto-indent-mode-0.35" "builtin-packages" "builtin-packages~" "clojure-mode-1.7.1" "clojurescript-mode-0.5" "coffee-mode-0.3.0" "color-file-completion-1.0.1" "color-theme-6.6.1" "color-theme-eclipse-0.0.2" "color-theme-github-0.0.3" "color-theme-railscasts-0.0.2" "color-theme-twilight-0.1" "css-mode-1.0" "drag-stuff-0.0.3" "evernote-mode-0.41" "find-file-in-project-2.0" "flymake-coffee-0.4" "flymake-haml-0.5" "flymake-ruby-0.4" "flymake-shell-0.5" "haml-mode-3.0.14" "highlight-parentheses-1.0.1" "html-script-src-0.0.2" "inf-ruby-2.1" "js-comint-0.0.1" "js2-mode-20090814" "lua-mode-20100617" "package.el" "package.el~" "project-local-variables-0.2" "ruby-compilation-0.7" "ruby-electric-1.1" "ruby-mode-1.1" "slime-20100404" "tabbar-2.0.1" "tabbar-ruler-0.2" "yasnippet-0.6.1" "yasnippet-bundle-0.6.1" "zenburn-1.8"))
(if (file-directory-p dir) (mapc (lambda ... ...) (directory-files dir nil "^[^.]")))
(lambda (dir) (if (file-directory-p dir) (mapc ... ...)))("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/")
mapc((lambda (dir) (if (file-directory-p dir) (mapc ... ...))) ("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/" "/usr/share/emacs/site-lisp/elpa/"))
package-load-all-descriptors()
package-initialize()
  (progn (package-initialize))
(if (load (expand-file-name "~/.emacs.d/elpa/package.el")) (progn (package-initialize)))
(when (load (expand-file-name "~/.emacs.d/elpa/package.el")) (package-initialize))
eval-buffer(#<buffer  *load*> nil "c:/Documents and Settings/Carlos/Datos de programa/.emacs" nil t)  ; Reading at buffer position 9019
load-with-code-conversion("c:/Documents and Settings/Carlos/Datos de programa/.emacs" "c:/Documents and Settings/Carlos/Datos de programa/.emacs" t t)
load("~/.emacs" t t)
#[nil "\205\264

Этот файл не существует. Я пытался найти эту проблему в Google, но ничего не нашел.

Ответы [ 5 ]

13 голосов
/ 17 ноября 2011

Легко.По какой-то причине package.el, которую вы сейчас используете, является «классической» версией http://tromey.com/elpa/package.el.Это несовместимо с последними версиями package.el.Как вам удалось установить пакеты Marmalade с помощью этой версии, я не знаю;у вас, должно быть, была другая версия package.el, когда вы устанавливали эти пакеты, возможно, потому, что в то время вы использовали более новый Emacs.

Исправление заключается в использовании версии, поставляемой в комплекте с вашим Emacs (если она новаядостаточно иметь один) или заменить ~/.emacs.d/elpa/package.el на эту версию вместо этого, как описано в инструкциях Marmalade .

5 голосов
/ 19 марта 2013

Я наткнулся на этот вопрос, пытаясь решить подобную проблему.В моем случае форсирование package-initialize решило проблему:

;; init.el
(require 'package)
(package-initialize)

Несмотря на то, что я не читал исходный код для package.el, я полагаю, что какая-то лень в пакете.el решает проблему.Хотя это и старый вопрос, на который я хотел ответить, если кому-то еще понадобится помощь.

Дополнительную информацию о запуске Emacs смотрите в http://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html.

1 голос
/ 09 марта 2013

Добавление файла, а не каталога, с помощью touch ~/.emacs.d/elpa/archives/-pkg решило это за меня.

0 голосов
/ 18 сентября 2013

В моем случае мне пришлось добавить эту директиву, чтобы сообщить emacs, где он может найти необходимые файлы:

Первая строка

(add-to-list 'load-path "~/.emacs.d/")

И требуемый пакет ...

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)

(when (not package-archive-contents)
  (package-refresh-contents))
0 голосов
/ 17 ноября 2011

Я думаю, что это может просто исчезнуть, если вы вручную создадите каталог по адресу:

c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg
...