Erlang 安装给出 erlang-mode is broken 错误

Erlang installation giving erlang-mode is broken error

我正在尝试从 Ubuntu 14.04 上的 elixir website 安装 Elixir。执行 $ sudo apt-get install esl-erlang 时出现以下错误。有人可以帮我吗?

$ sudo apt-get install esl-erlang
Reading package lists... Done
Building dependency tree       
Reading state information... Done
esl-erlang is already the newest version.
The following packages were automatically installed and are no longer required:
  libgconf2-4 python-requests-whl python-setuptools-whl python-six-whl
  python-urllib3-whl python-wheel
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 406 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up erlang-mode (1:21.0.5-1) ...
ERROR: erlang-mode is broken - called emacs-package-install as a new-style add-on, but has no compat file.
Install emacsen-common for emacs23
emacsen-common: Handling install of emacsen flavor emacs23
Wrote /etc/emacs23/site-start.d/00debian-vars.elc
Wrote /usr/share/emacs23/site-lisp/debian-startup.elc
Install emacsen-common for emacs24
emacsen-common: Handling install of emacsen flavor emacs24
Wrote /etc/emacs24/site-start.d/00debian-vars.elc
Wrote /usr/share/emacs24/site-lisp/debian-startup.elc
Install erlang-mode for emacs
Install erlang-mode for emacs23
install/erlang: Handling install for emacsen flavor emacs23
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-edoc.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-eunit.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-flymake.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-skels-old.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-skels.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang-start.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang.elc
Wrote /usr/share/emacs23/site-lisp/erlang/erlang_appwiz.elc

In toplevel form:
erldoc.el:64:1:Error: Cannot open load file: cl-lib
Wrote /usr/share/emacs23/site-lisp/erlang/path.elc
ERROR: install script from erlang-mode package failed
dpkg: error processing package erlang-mode (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 erlang-mode
E: Sub-process /usr/bin/dpkg returned an error code (1)

谢谢

我不知道是什么导致了您的错误,但您可以尝试 ASDF with the Elixir plugin. This allows you to install multiple versions of Elixir and its dependencies, and uses your user environment with shims 而不是安装到系统目录。这避免了执行单个系统级安装所带来的许多依赖性和权限问题。

您似乎同时安装了 emacs23 和 emacs24。尝试为 emacs23 构建时发生故障。除非出于某种原因你真的需要 emacs23,否则请将其删除,然后它应该可以正常安装:

sudo apt-get remove emacs23

您可能需要手动删除一些其他 emacs23-* 包。

此问题仅影响 erlang-mode 包,该包添加了对在 Emacs 中编辑 Erlang 代码的支持。如果您不使用 Emacs(或不在其中开发 Erlang),您可以卸载该软件包:

sudo apt remove erlang-mode

, this happens when installing erlang-mode on a system using Emacs 23, as erlang-mode only supports Emacs 24 or newer. (Looks like this is a bug in the package: it shouldn't try to compile itself for unsupported Emacs versions.) If you do want to use erlang-mode in Emacs, I'd suggest running Emacs 24 and installing the Erlang mode from MELPA 中所述。