Создание пакетов по исходным текстам с применением Checklnstall.
воскресенье, мая 06, 2007
Проблема
Требуется построить пакет Slackware, Red Hat или Debian по исходным текстам, потому что приложение, которое вы хотите установить, не существует в виде нужного пакета. Вы почитали кое-какую документацию по построению пакетов, и эта задача выглядит для вас очень сложной. Нет ли более простого пути?
Решение
Воспользуйтесь Checklnstall.
Для начала проверте наличие программы. Если ее нет, выполните следующие действия:
$ sudo apt-get install checkinstall
После того, как программа установилась, можно двигаться дальше. Выполните следующие команды (в следующем примере используется программа JOE (Joe’s Own Editor):
# mkdir /doc-pak
# tar zxvf joe-2.9.8.tar.gz
# cd joe-2.9.8
# ./configure
# make
# checkinstall -D
Checklnstall заменяет 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 программа Checklnstall размещает файлы README и прочую документацию программы. Если не создать каталог doc-pak, Checklnstall спросит, хотите ли вы создать каталог документации по умолчанию. Если ответить отрицательно, пакет останется без документации. Checklnstall использует «родную» систему управления пакетами: RPM в Red Hat, installpkg в Slackware, .apt в Debian. Чтобы удалить пакет Checklnstall, воспользуйтесь программой управления пакетами своей системы.
Checklnstall поддерживает любые сценарии установки. Пример:
# checkinstall -D make installpackages
# checkinstall -R make modules_install
# checkinstall -S install.sh
# checkinstall -D setup
He забудьте изучить файл README устанавливаемой программы, а также прочую прилагаемую документацию. Не все пакеты с исходными текстами следуют традиционной процедуре configure-make-make install. Checklnstall еще не позволяет создать пакет без его автоматической установки. Вероятно, эта возможность появится в будущих версиях.
Аргументы в пользу компиляции программ по исходным текстам:
- вы можете включить поддержку тех возможностей, которые вам необходимы;
- оптимизация программ для конкретной архитектуры;
- полный контроль над ходом установки.
Впрочем, есть и недостатки:
- возможные проблемы с обновлением и удалением;
- до «кошмара зависимостей» рукой подать;
- на компиляцию большой программы может потребоваться несколько часов.
Ярлыки: документация, linux
1. по умолчанию checkinstall не установлен - его надо ставить есть в дистре). Возможно, стоит это добавить в пост.
2. checkinstall устанавливает "упоминание" о пакете, но не создаёт полновесный дебиановский пакет? И как быть с зависимостями?
p.s. цветовая схема порадовала, понравилась. Может быть, sidebar немножко покороче? В исходном тексте шаблона можно поправить...