gforth.el 中的错误导致 ppa 中的 emacs24 无法安装

gforth.el 中的错误导致 ppa 中的 emacs24 无法安装

由于 gforth.el 中的错误,我无法从存储库 ppa:cassou/emacs 安装 emacs24。问题在于 gforth.el 中存在一个已知错误,导致字节编译失败。我目前无法使用 apt 安装任何其他东西。相关启动板站点上也没有错误。我猜 apt 注意到我已经安装了 gforth 并尝试为其安装匹配的 emacs 模式,而不是所有安装都会遇到的错误。

我有一个在非 Ubuntu 机器上可以运行的 gforth.el 版本(只是删除了字节编译调用),但我对 apt 的内部工作原理不太了解,无法用这个新的 gforth.el 替换提供的版本。

从下面的错误消息中,有人知道如何使用这个文件而不是提供的文件吗?

迄今为止的尝试

我在 /usr/share/emacs24/site-lisp/gforth/gforth.el 和 /usr/share/emacs/site-lisp/gforth/gforth.el 找到了 gforth.el。我已将这两个文件替换为可用版本,但错误消息仍然相同。

错误信息

% sudo apt-get install emacs24
Reading package lists... Done
Building dependency tree       
Reading state information... Done
emacs24 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 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 emacs24 (24.3+1-2~ppa1~saucy1) ...
Install dictionaries-common for emacs24
install/dictionaries-common: Already byte-compiled for emacs24. Skipping ...
Install gforth for emacs24
install/gforth: Byte-compiling for emacsen flavour emacs24

In toplevel form:
gforth.el:734:18:Error: Don't know how to compile nil
gforth.el:734:18:Error: Don't know how to compile nil
gforth.el:734:18:Error: Don't know how to compile nil
gforth.el:734:18:Error: Don't know how to compile nil
gforth.el:734:18:Error: Don't know how to compile nil
ERROR: install script from gforth package failed
dpkg: error processing emacs24 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 emacs24
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

我认为您可以通过注释(删除)以下几行来暂时解决问题/usr/share/emacs(24)/site-lisp/gforth/gforth.el

(eval-when-compile
  (byte-compile 'forth-set-word-properties)
  (byte-compile 'forth-next-known-forth-word)
  (byte-compile 'forth-update-properties)
  (byte-compile 'forth-delete-properties)
  (byte-compile 'forth-get-regexp-branch))

我已经用这个方法解决了这个问题。

答案2

我卸载了名称中带有 gforth 的 (3) 个软件包,然后调用“sudo apt-get install -f”。

(这可以是一种解决方法,但如果您需要 gforth 则不是解决方案。)

相关内容