Проблема 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 и обнаружил эту ошибку. Применив принятое решение, доказал, что эта ошибка была лишь верхушкой айсберга. Итак, я сделал это:
- Удалите emacs с помощью apt-get purge emacs*
- Удалите все исполняемые файлы, которые появляются в дополнении кода emacs.
- Загрузите, скомпилируйте и установите 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 -