升级到 Ubuntu 23.04 后,emacs 出现 libtiff.so.5 问题

升级到 Ubuntu 23.04 后,emacs 出现 libtiff.so.5 问题

当我最近从 22.10 升级到 Ubuntu 23.04 时,我无法启动 Emacs(我使用的是 Doom Emacs)。在终端中我收到以下消息:

emacs:加载共享库时出错:libtiff.so.5:无法打开共享对象文件:没有此文件或目录

请注意,在 22.10 下,我已构建并安装了 Emacs 28.2。我曾尝试简单地安装 Emacs 28.2(现在已为 Ubuntu 23.04 打包),但不起作用。我还尝试按照某人的建议在 libtiff.so.5 和 libtiff.so.6 之间创建符号链接(现在找不到链接),但这同样没有改变任何东西。

我是否需要在 23.04 下重建并重新安装 Emacs,还是应该完全删除现有的 Emacs 和 Doom 并使用 apt-get 重新安装?或者我应该做其他什么?

我是一个新手,正在玩一些我不太了解的东西,所以非常感谢您的帮助。

答案1

我认为 Ubuntu 23.04 附带了libtiff.so.6;通过查看来仔细检查这是否正确/usr/lib/x86_64-linux-gnu

如果 Emacs 在 libtiff 中使用的特定 API 没有改变,那么您可以通过创建名为 的符号链接来欺骗libtiff.so.5Emacs libtiff.so.6

运行/usr/lib/x86_64-linux-gnu类似的sudo ln -s libtiff.so.6 libtiff.so.5

答案2

注意:此解决方案不适用于 Doom Emacs,可能属于更普遍的问题,但这解决了我的 emacs 升级错误,该错误抱怨 libtiff.so.5:

哇!我针对 emacs-gtk 进行了升级,遇到了这个错误。应用可接受的解决方案,证明这个错误只是冰山一角。所以我这样做了:

  1. 通过 apt-get purge emacs 删除 emacs*
  2. 删除 emacs 代码完成中出现的所有可执行文件。
  3. 从源代码下载、编译和安装 emacs。

我很少下载任何 emacs Debian 包,但是上次安装 emacs-gtk 时我进行了匆忙的安装。

很久以前,我创建了一个例程来编译 emacs,因为它可以使 emacs 自动帮助显示相应的源代码,即使是 C。

zDir=$(dirname -- "${BASH_SOURCE[0]}")
zSource="$zDir/emacs"
if [[ -d "$zSource" ]]; then
    cd "$zSource"
    git pull --rebase # should I use --rebase?
else
    cd "$zDir" || exit 1
    git clone https://salsa.debian.org/rlb/deb-emacs.git "$zSource"
    cd "$zSource" || exit 1
fi

# emacs is deeply connected to x
sudo apt-get -y build-dep emacs-gtk

./autogen.sh # create configure+x according to configure.ac
./configure # create Makefile according to Makefile.in
# existing files are not removed by git pull pull --rebase
# make clean does not remove old .elc files which will case make to fail
# find "$zSource" -name '*.elc' -exec sudo rm '{}' + 
make
sudo make install # did this instead of make-dist and it worked

cd -

相关内容