Вопрос или проблема
Я использовал 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
не может выполнить свою задачу, потому что необходимая структура каталогов не была создана до этого.
Возможные Решения
-
Создание Директории: Перед запуском
checkinstall
, убедитесь, что все директории, в которые должны устанавливаться файлы, действительно существуют. Если каталог/home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex
отсутствует, создайте его вручную:mkdir -p /home/oub/emacs/site-lisp/packages/auctex-git/auctex/latex
-
Использование Параметров: Как вы уже упомянули, добавление параметра
--fstrans=no
к командеcheckinstall
решает проблему:sudo checkinstall --fstrans=no
Этот параметр отключает файловую транзакцию (filesystem transaction) в
checkinstall
, что может помочь избежать проблемы, связанной с отсутствующими директориями.
Контекст Утилиты checkinstall
Заметьте, что checkinstall
не всегда находит активную поддержку, и его использование может быть проблематичным, особенно на более новых версиях дистрибутивов. На данный момент альтернативами являются такие инструменты, как dpkg
или fpm
, которые предоставляют более современные методы упаковки и установки программного обеспечения.
Заключение
Итак, для успешной установки пакета AUCTeX с использованием checkinstall
на Ubuntu 24.04, вам следует либо убедиться в том, что все требуемые директории созданы заранее, либо использовать предложенный параметр --fstrans=no
, который позволяет избежать возникновения подобных ошибок. Если у вас возникают дальнейшие затруднения, всегда можно обратиться на соответствующие форумы или рассмотреть возможность использования других инструментов управления пакетами.