Проблема libtiff.so.5 с emacs после обновления до Ubuntu 23.04

Когда я недавно обновился до Ubuntu 23.04 с 22.10, мне не удалось запустить Emacs (я использую Doom Emacs). В терминале получаю такое сообщение:

emacs: ошибка при загрузке общих библиотек: libtiff.so.5: невозможно открыть файл общего объекта: нет такого файла или каталога

Обратите внимание, что в версии 22.10 я собрал и установил Emacs 28.2. Я попытался просто установить Emacs 28.2, который теперь упакован для Ubuntu 23.04, но это не сработало. Я также попытался создать символическую ссылку между libtiff.so.5 и libtiff.so.6, как было предложено кем-то (сейчас не могу найти ссылку), но опять же это ничего не изменило.

Нужно ли мне пересобирать и переустанавливать Emacs до версии 23.04 или мне следует полностью удалить существующие Emacs и Doom и переустановить их с помощью apt-get? Или мне следует сделать что-то еще?

Я новичок, играющий с вещами, в которых не совсем разбираюсь, поэтому буду благодарен за вашу помощь.

1 ответ

Примечание. Это решение не применимо к Doom Emacs и, вероятно, должно относиться к гораздо более общему вопросу, но именно это решило мою ошибку обновления emacs, которая жаловалась на libtiff.so.5:

Ух ты!Я выполнил обновление emacs-gtk и обнаружил эту ошибку. Применив принятое решение, доказал, что эта ошибка была лишь верхушкой айсберга. Итак, я сделал это:

  1. Удалите emacs с помощью apt-get purge 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 -

Другие вопросы по тегам