我的emacs
可执行文件指向从以下源代码安装的版本 28这些说明,并且在 21.10 下按预期工作。移至 22.04 后,运行emacs
返回以下内容:
libotf.so.0: cannot open shared object file: No such file or directory
确实,它不可用:
ll /usr/lib/x86_64-linux-gnu/libotf.so*
-rw-r--r-- 1 root root 1MB Mar 24 13:14 /usr/lib/x86_64-linux-gnu/libotf.so.1.0.0
-rw-r--r-- 1 root root 1MB Mar 24 13:14 /usr/lib/x86_64-linux-gnu/libotf.so.1
-rw-r--r-- 1 root root 1MB Mar 24 13:14 /usr/lib/x86_64-linux-gnu/libotf.so
在搜索 22.04 的可用软件包之后,似乎libotf0
不再包含它,尽管libotf1
它确实包含在内。
因此我简单地改变了库的名称:
sudo cp /usr/lib/x86_64-linux-gnu/libotf.so.{1,0}
并且emacs
似乎运行正常。有没有更强大的方法来处理此类问题?
答案1
在我看来,这似乎是一种可行的破解方法,并且我认为以在 Ubuntu 22.04 中安装的方式运行 Emacs 28.1 没有任何问题。如果您在 Ubuntu 22.04 中遇到 Emacs 28.1 问题,可以使用以下命令将 Emacs 28.1 安装为 snap 包:
sudo snap install emacs --classic
安装 snap 包是获取 Ubuntu 中许多流行开源应用程序的最新版本的一种用户友好的方式。
答案2
您可以配置 Emacs 构建以排除 libotf
./configure --without-libotf
我发现https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emacs-git