Emacs的软件包安装在软件包的末尾插入了一个额外的破折号

时间:2016-03-31 16:11:10

标签: emacs elisp

我在尝试与其他编辑器合作几年后再次尝试切换到Emacs,但每当我设置MELPA并尝试从我的.init.el安装软件包时,我都会收到此错误。

基本上,package-compute-transaction似乎在包名的末尾添加了一个破折号,阻碍了它在存储库中找到。使用M-x package-install手动安装软件包可以正常工作。

我的init.el(目前准系统):

;; init.el -- Emacs config

;; MELPA setup and initial packages
(require 'package)

(add-to-list 'package-archives
         '("melpa" . "http://melpa.org/packages/"))

(unless package-archive-contents
  (package-refresh-contents))

(package-initialize)

(defvar package-list
  '(better-defaults 
    material-theme))

(dolist (p package-list)
  (when (not (package-installed-p p))
         (package-install p)))
;; Basic defaults

(setq inhibit-startup-message t) ;; Hide startup mesage
(load-theme 'material t) ;; Load theme: Material
(global-linum-mode t) ;; Line numbers

我使用--debug-init运行Emacs的错误:

Debugger entered--Lisp error: (error "Package ‘better-defaults-’ is unavailable")
  signal(error ("Package ‘better-defaults-’ is unavailable"))
  error("Package `%s-%s' is unavailable" better-defaults "")
  package-compute-transaction(nil ((better-defaults)))
  package-install(better-defaults)
  (progn (package-install p))
  (if (not (package-installed-p p)) (progn (package-install p)))
  (while --dolist-tail-- (setq p (car --dolist-tail--)) (if (not (package-installed-p p)) (progn (package-install p))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (let ((--dolist-tail-- myPackages) p) (while --dolist-tail-- (setq p (car --dolist-tail--)) (if (not (package-installed-p p)) (progn (package-install p))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  eval-buffer(#<buffer  *load*> nil "c:/Users/Nelthorim/.emacs.d/init.el" nil t)  ; Reading at buffer position 830
  load-with-code-conversion("c:/Users/Nelthorim/.emacs.d/init.el" "c:/Users/Nelthorim/.emacs.d/init.el" t t)
  load("c:/Users/Nelthorim/.emacs.d/init" t t)
  #[0 "\205\266

我的Windows桌面和Linux笔记本电脑都出现了这个错误(确切地说是同一个错误),两个设置都有Emacs 24.5和25.0。

我找到了一个旧的SO答案,标记为已解决,类似的问题。但是&#34;解决方案&#34;因为那里没有工作。

编辑:对我的init.el进行了一些更改,但结果没有差异。

1 个答案:

答案 0 :(得分:0)

似乎“拼写错误”是导致此错误的原因。

更改:

(add-to-list 'package-archives
     '("melpa" . "http://melpa.org/packages/"))

有:

(add-to-list 'package-archives
     '("melpa" . "http://melpa.org/packages/") t)

解决了这个问题。