如何更改emacs包存储库?

时间:2014-12-17 09:30:08

标签: emacs packages emacs24

我在Ubuntu 14.4上使用Emacs 24.3.1。我希望list-packages命令列出MELPA存储库中的包。我已按照herehere的说明进行操作,但无济于事。具体来说,按照第一个链接中给出的建议,我将以下行添加到~./ 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存储库?

1 个答案:

答案 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变量通过自定义再次更改后发生第二次初始化,则可能会导致系统按照您希望的方式工作的其他障碍。