4.5. Создание пакетов по исходным текстам с применением Checkinstall
Проблема
Требуется построить пакет Slackware, Red Hat или Debian по исходным текстам, потому что приложение, которое вы хотите установить, не существует в виде нужного пакета. Вы почитали кое-какую документацию по построению пакетов, и эта задача выглядит очень сложной. Нет ли более простого пути?
Решение
Воспользуйтесь Checkinstall. Выполните следующие команды (в данном примере, как и в предыдущем, используется программа JOE в системе Debian):
# mkdir /doc-pak
# tar zxvf joe-2.9.8.tar.gz
# cd joe-2.9.8
# ./configure
# make
# checkinstall -D
Checkinstall заменяет make install, поэтому команда должна выполняться из корневого каталога дерева исходных текстов. Выполните инструкции, отображаемые в процессе работы. Программа строит и устанавливает .deb, в чём нетрудно убедиться:
$ dpkg -l | grep joe
ii joe 2.9.801 joe's own editor, my fave
Всё, программа установлена и готова к работе. Копия пакета остаётся в каталоге исходных текстов.
Следующая команда строит пакет Slackware:
# checkinstall -S
Построение пакета RPM:
# checkinstall -R
Комментарий
В каталоге doc-pak программа Checkinstall размещает файлы README и прочую документацию программы. Если не создать каталог doc-pak, Checkinstall спросит, хотите ли вы создать каталог документации по умолчанию. Если ответить отрицательно, пакет останется без документации.
Checkinstall использует «родную» систему управления пакетами: RPM в Red Hat, installpkg в Slackware, .apt в Debian. Чтобы удалить пакет Checkinstall, воспользуйтесь программой управления пакетами вашей системы.
Checkinstall поддерживает любые сценарии установки. Пример:
# checkinstall -D make installpackages
# checkinstall -R make modules_install
# checkinstall -S install.sh
# checkinstall -D setup
Не забудьте изучить файл README устанавливаемой программы, а также прочую прилагаемую документацию. Не все пакеты с исходными текстами следуют традиционной процедуре configure-make-make install. В отдельных случаях используются другие сценарии установки, как в приведённом выше примере.
Checkinstall ещё не позволяет создать пакет без его автоматической установки. Вероятно, эта возможность появится в будущих версиях.
См. также
Домашняя страница Checkinstall (http://asic-linux.com.mx/~izto/checkinstall/news.php)