Ubuntu 24.04 checkinstall не удался

Вопрос или проблема

Я использовал checkinstall в Ubuntu 18.04 и 16.04, однако в 24.04, похоже, он больше не работает так, как ожидалось. Вот пошаговое описание (но вам нужна недавняя версия emacs)

Клонируйте пакет auctex с помощью
git clone git://git.savannah.gnu.org/auctex.git

Переключитесь на ветку master с помощью
git switch --guess master

Запустите

./autogen.sh

Запустите
./configure --with-emacs=/opt/emacs29/bin/emacs --prefix=$HOME/ALLES/ --with-lispdir=$HOME/emacs/site-lisp/packages/auctex-git --without-texmf-dir

make

make install

Это работает, однако

checkinstall или checkinstall make install
возвращают следующую ошибку.

/usr/bin/install -c -m 644 preview.sty /home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex
/usr/bin/install: не удается создать обычный файл '/home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex': Нет такого файла или каталога
make[1]: *** [Makefile:53: install-texmf] Ошибка 1
make[1]: Выйти из каталога '/home/oub/tmp/auctex/latex'
make: *** [Makefile:324: install-texmf] Ошибка 2

****  Установка не удалась. Прерывание создания пакета.

Очистка...OK

До свидания.

Есть идеи, кто здесь виноват? Есть страница на github https://github.com/ruxkor/checkinstall,
но последний коммит был 16 лет назад, проблемы не отвечены. Поэтому я публикую это здесь.
С уважением

Уве Брауэр

Недавно у меня была та же проблема после обновления до 24.04. Исправить это довольно просто, просто добавление --fstrans=no к вызову checkinstall решило это для меня, т.е. sudo checkinstall --fstrans=no должно сработать.

Ответ или решение

Вопрос, который вы подняли, касается работы утилиты checkinstall в среде Ubuntu 24.04. Как вы правильно отметили, использование checkinstall при установке пакетов может вызывать трудности, особенно после обновления до новой версии Ubuntu.

Описание Проблемы

Ваша проблема начинается с ошибки, возникшей при запуске checkinstall, которая указывает на невозможность создания файла в заданном каталоге:

/usr/bin/install -c -m 644 preview.sty /home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex
/usr/bin/install: cannot create regular file '/home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex': No such file or directory

Это сообщение говорит о том, что make install, запущенная через checkinstall, пытается установить файл в директорию, которая не существует. Ошибка связана с тем, что сама операция install не может выполнить свою задачу, потому что необходимая структура каталогов не была создана до этого.

Возможные Решения

  1. Создание Директории: Перед запуском checkinstall, убедитесь, что все директории, в которые должны устанавливаться файлы, действительно существуют. Если каталог /home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex отсутствует, создайте его вручную:

    mkdir -p /home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex
  2. Использование Параметров: Как вы уже упомянули, добавление параметра --fstrans=no к команде checkinstall решает проблему:

    sudo checkinstall --fstrans=no

    Этот параметр отключает файловую транзакцию (filesystem transaction) в checkinstall, что может помочь избежать проблемы, связанной с отсутствующими директориями.

Контекст Утилиты checkinstall

Заметьте, что checkinstall не всегда находит активную поддержку, и его использование может быть проблематичным, особенно на более новых версиях дистрибутивов. На данный момент альтернативами являются такие инструменты, как dpkg или fpm, которые предоставляют более современные методы упаковки и установки программного обеспечения.

Заключение

Итак, для успешной установки пакета AUCTeX с использованием checkinstall на Ubuntu 24.04, вам следует либо убедиться в том, что все требуемые директории созданы заранее, либо использовать предложенный параметр --fstrans=no, который позволяет избежать возникновения подобных ошибок. Если у вас возникают дальнейшие затруднения, всегда можно обратиться на соответствующие форумы или рассмотреть возможность использования других инструментов управления пакетами.

Оцените материал
Добавить комментарий

Капча загружается...