由于 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 则不是解决方案。)