【问题标题】:Package listed in MELPA, but not found in package installMELPA 中列出的软件包,但在软件包安装中找不到
【发布时间】:2014-07-18 21:19:09
【问题描述】:

我目前正在尝试按照快速启动下https://github.com/ensime/ensime-emacs 的说明安装适用于 emacs 24.3.1 的 ENSIME;我已经添加了

    (require 'package)
    (add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
    (package-initialize)

(when (not package-archive-contents)
  (package-refresh-contents))

按照指示复制到我的 .emacs 文件中。但是,当我重新启动并执行 M-x package install [RETURN]ensime[RETURN] 时,它会返回 [No Match],事实上,当我列出包时我找不到它。但是,我可以在http://melpa.milkbox.net/# 轻松找到它;什么会导致通过网站提供的内容与何时可以从 emacs 安装之间存在差异?

非常感谢任何帮助;谢谢!

【问题讨论】:

  • 我也遇到过同样的问题,查看我的 Emacs 配置,唯一的区别是我有 '("melpa" . "http://melpa.milkbox.net/packages/")) - 注意最后缺少的 t 参数。不记得这是否解决了我的问题,但尝试起来很容易。
  • 感谢您的建议,但恐怕它不起作用。
  • 你在package-install之前尝试过明确的M-x packaged refresher contents吗?
  • 使用M-: package-archives可以看到变量package-archives的内容。你可能会发现它不是你想象的那样。在我的情况下,我在自定义设置变量中对其进行了自定义(在 .emacs 末尾自动保存),这会覆盖我之前设置的值。
  • add-to-list 调用末尾的 't' 就是这样附加它。

标签: emacs ensime melpa


【解决方案1】:

我必须运行 M-x package-refresh-contents。一旦我这样做了,文件就找到了。

这是我的 .emacs 的样子:

(cond
 ((>= 24 emacs-major-version)
  (require 'package)
  (package-initialize)
  (add-to-list 'package-archives
           '("melpa-stable" . "http://stable.melpa.org/packages/") t)
  (package-refresh-contents)
 )
)

【讨论】:

  • 但是 Melpa 上的 getting startedEnable installation of packages from MELPA by adding an entry to package-archives after (require 'package) and before the call to package-initialize in your init.el or .emacs file:
  • 这种颠倒的顺序可能是导致需要刷新的原因;最终它们在启动时是一样的,因为 package-initialize 在添加到列表之前没有任何东西要初始化。我还没有尝试过,但我会的。
  • 调用 package-refresh-contents 为我解决了这个问题。
  • ((>= 24 emacs-major-version) 不是走错路了吗?
【解决方案2】:

在我的 .emacs 文件中

;; packages
(when (>= emacs-major-version 24)
  (require 'package)
  (package-initialize)
  (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
  )

那么,M-x package-list-packages

C-s ensime

你去吧:

ensime 20140718.... 为 Emacs 提供增强的 Scala 交互模式

您确定您的 emacs 真的可以访问互联网吗?

【讨论】:

  • 值得指出的是,这已经过时了,请使用ensime.org/editors/emacs/install
  • 太好了,谢谢!问题是为什么package-install 没有找到它(我和clang-format 有同样的问题)。
  • @Gauthier 我发现了同样的行为。原来我想要的包已经安装了,这就是package-install 无法检测到它的原因。
  • 感谢@MiniFridge 这对我来说是个问题。 :)
【解决方案3】:

在对 .emacs 进行常规编辑以使 melpa 可用并重新启动 Emacs 后,我在包列表中搜索了我想要的包。

M-x package-list-packages
C-s <package_name>

然后我点击包的名称并按下安装按钮。我不确定为什么M-x package-install RET &lt;package_name&gt; 失败,但单击安装按钮对我有用。

【讨论】:

  • 在运行M-x package-install RET magit 时尝试安装magit 时出现同样的问题,一直指示没有匹配。它显示了相关的包,例如magit-svnmagit-p4 等,但不仅仅是magit。但是,您建议的答案在安装时有效。
  • @RayVega 我很高兴知道我的回答是帮助他人;谢谢你让我知道:)
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 2020-05-19
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2021-09-13
相关资源
最近更新 更多