我正在尝试将所有依赖项自动安装到新的Emacs安装中。当我将下面的代码段放在我的.emacs中时,我不断获得:Package `smex-' is unavailable.
我想知道这是否是预期的功能? Emacs入门套件做了类似我记得以前工作的东西。使用Emacs 24.3。
(when (not package-archive-contents)
(package-refresh-contents))
(defvar my-packages
'(smex))
(dolist (p my-packages)
(let ((s (symbol-name p)))
(when (not (package-installed-p s))
(package-install s))))
修改
显然这是由一个bug或其他东西引起的。我现在能够在最新的Emacs 24.3.1中使用它。显然他们也改变了它,所以包名应该是符号。
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents))
(defvar my-packages
'(list of packages))
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
答案 0 :(得分:6)
我在使用
时遇到了这个问题(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/"))
调用(package-initialize)
后。如果我执行
(setq package-archives '(("melpa" . "http://melpa.milkbox.net/packages/")
("gnu" . "http://elpa.gnu.org/packages/")))
在(package-initialize)
之前,自动安装逻辑可以安装缺少的包。
答案 1 :(得分:0)
请参阅package-compute-transaction
:
(error "Package `%s-%s' is unavailable"
(symbol-name next-pkg)
(package-version-join next-version))