我在Ubuntu 14.4上使用Emacs 24.3.1。我希望list-packages
命令列出MELPA存储库中的包。我已按照here和here的说明进行操作,但无济于事。具体来说,按照第一个链接中给出的建议,我将以下行添加到~./ emacs文件中:
(when (>= emacs-major-version 24)
(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
)
并重新启动我的emacs。这没有任何效果,所以我删除了上面的行,并按照第二个链接中给出的建议,将以下行添加到我的〜/ .emacs文件中:
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "https://marmalade-repo.org/packages/")
("melpa" . "http://melpa.milkbox.net/packages/")))
我重启了我的emacs,但这也没有效果。
我认为这些尝试没有效果的原因是每次尝试后我都使用list-package
命令列出了可用的包,但是没有找到我感兴趣的包亮点-chars.el在the MELPA website的列表中。
如何指示list-packages
命令搜索MELPA存储库?
答案 0 :(得分:2)
重新启动后应首先检查的是变量的值。
C-h v package-archives
RET
它是否具有你试图设定的价值是最重要的。
如果没有,那么您的配置中可能还有其他内容正在设置冲突值。
我猜测你有package-archives
变量自定义,并且存储的自定义值会破坏你使用setq
设置的值。
例如,以下init文件将具有描述的效果:
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "https://marmalade-repo.org/packages/")
("melpa" . "http://melpa.milkbox.net/packages/")))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(package-archives (quote (("gnu" . "http://elpa.gnu.org/packages/")))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
这些custom-set-*
表单也可能位于单独的文件中,因此不太明显。
尝试 M-x customize-option
RET package-archives
RET
选择“还原”和“删除自定义”以删除通过此界面保存的任何值。
我将推测Emacs在评估你的init文件之后发生的软件包系统默认初始化的事实可能也是一个因素。人们经常建议在您的初始文件中调用(package-initialize)
,但忽略您希望与(setq package-enable-at-startup nil)
同步的信息,以防止初始化发生两次。如果在package-archives变量通过自定义再次更改后发生第二次初始化,则可能会导致系统按照您希望的方式工作的其他障碍。