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)