Emacs 的 package-install 在包的末尾插入了一个额外的破折号
Emacs's package-install inserts an extra dash at the end of the package
在与其他编辑器打交道几年后,我一直在尝试再次切换到 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
我得到的错误是 运行 Emacs with --debug-init:
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 "56
我的 Windows 台式机和 Linux 笔记本电脑都会出现此错误(完全相同),两种设置均使用 Emacs 24.5 和 25.0。
我找到了一个针对类似问题的旧 SO 答案,标记为已解决。但是那里给出的 "solutions" 不起作用。
编辑:对我的 init.el 进行了一些更改,但结果没有差异。
似乎 "typo" 是导致此错误的原因。
已更改:
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/"))
用于:
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
问题已解决。
在与其他编辑器打交道几年后,我一直在尝试再次切换到 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
我得到的错误是 运行 Emacs with --debug-init:
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 "56
我的 Windows 台式机和 Linux 笔记本电脑都会出现此错误(完全相同),两种设置均使用 Emacs 24.5 和 25.0。
我找到了一个针对类似问题的旧 SO 答案,标记为已解决。但是那里给出的 "solutions" 不起作用。
编辑:对我的 init.el 进行了一些更改,但结果没有差异。
似乎 "typo" 是导致此错误的原因。
已更改:
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/"))
用于:
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
问题已解决。