强制 apt 删除所有 emacs*

强制 apt 删除所有 emacs*

我在使用 emacs 的 apt-packages 时遇到了一个错误问题:

>>Error occurred processing debian-ispell.el: File error (("Opening input file" "no such file or directory" "/usr/share/emacs23/site-lisp/dictionaries-common/debian-ispell.el"))
>>Error occurred processing ispell.el: File error (("Opening input file" "no such file or directory" "/usr/share/emacs23/site-lisp/dictionaries-common/ispell.el"))
>>Error occurred processing flyspell.el: File error (("Opening input file" "no such file or directory" "/usr/share/emacs23/site-lisp/dictionaries-common/flyspell.el"))
emacs-install: /usr/lib/emacsen-common/packages/install/dictionaries-common emacs23 failed at /usr/lib/emacsen-common/emacs-install line 28, <TSORT> line 30.
dpkg: error processing emacs23-lucid (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of emacs:
 emacs depends on emacs23 | emacs23-lucid | emacs23-nox; however:
  Package emacs23 is not installed.
  Package emacs23-lucid which provides emacs23 is not configured yet.
  Package emacs23-nox which provides emacs23 is not installed.
  Package emacs23-lucid is not configured yet.
  Package emacs23-nox is not installed.
dpkg: error processing emacs (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
         Errors were encountered while processing:
 emacs23-lucid
 emacs
E: Sub-process /usr/bin/dpkg returned an error code (1)

事实上,只要有 emacs23-nox 和几个插件(来自 apt),我就满足了。但我既不能 --purge 也不能 --purge 重新安装,也不能删除软件包。它总是在处理这个特定的错误。我做了一些谷歌搜索,在 Launchpad 上找到了一些东西,建议:

sudo apt-get install --reinstall --purge emacsen-common

但这是相同的...所以我希望有一种方法可以告诉应用程序删除与 emacs 相关的所有内容,然后从头开始?

谢谢,马吕斯

答案1

当软件包的 {pre,post}-{installation,removal} 脚本抛出错误时,有时您将无法完成软件包的安装或删除。这可能是由于软件包(或有时是另一个软件包)中的错误而导致的,在这种情况下,您应该尝试识别问题并报告错误,或者因为您在 中乱搞/usr,在这种情况下,请不要这样做。

解决方法是采取必要的措施来满足包脚本的要求,或者注释掉包脚本中有问题的命令。您遇到问题的包脚本位于/var/lib/dpkg/info/emacs23-lucid.postinst。失败的特定命令是/usr/lib/emacsen-common/emacs-install ${FLAVOR}

您应该尝试做的第一件事是修复根本问题。这里/usr/share/emacs23缺少 下的三个文件。它们应该是 下相应文件的符号链接/usr/share/emacs。如果它们是损坏的符号链接,请尝试删除它们;如果 下的文件/usr/share/emacs23不存在但 下的文件/usr/share/emacs存在,请尝试创建符号链接。

如果你无法解决这个问题,

  • 注释掉有问题的行:编辑包脚本,#在有问题的行开头添加;
  • 或忽略错误:|| true在有问题的命令末尾添加,或set -e在文件开头附近删除。

除了删除并重新安装该emacs23-lucid软件包之外,您可能还需要重新安装其他软件包以使您的系统恢复正常状态,特别是dictionaries-common提供三个麻烦.el文件的软件包。

答案2

由于某些原因,Emacs 中存在很多不必要的依赖项。我的建议是删除所有 Launchpad 版本的 Emacs、Emacsen 以及任何其他版本的 Emacs。

下一步是访问 gnu.org 并下载可用的最新 Emacs。在安装之前,您可能需要构建 Emacs,但 GNU 提供的功能无需 Ubuntu、Canonical 或 Launchpad 所需的额外负担即可运行。

对于这个问题我还有其他的想法和看法,但是这样就已经太过了。

相关内容