Tips & Triks

не ломается у того, кто ничего не делает...

Свои deb-пакеты

Для более правильной установки и контроля версий, лучше всего на debian like системы ставить программы не из исходников, а собирать исходники в пакеты, а потом уже ставить.

Берем к примеру PHP.
Почему?
Потому что нам нужно:
1. Поставить пакет в путь не по умолчанию
2. Добавить к нему патчи
3. Получить готовый dеb

Поехали:
Скачали. Распаковали.
tar -xvf php-4.4.8.tar.bz2

Пропатчили раз...
gzip -cd php-4.4.8-fpm-0.5.8.diff.gz | patch -d php-4.4.8 -p1

Пропатчили два
patch -d php-4.4.8 -p1 < argument-php4_after_fpm.patch  

Приступаем к сборке deb
cd ./php-4.4.8
Делаем заготовку для debian
dh_make

Выбираем..
Type of package: single binary, multiple binary, library, kernel module or cdbs?
[s/m/l/k/b]
cd ./debian
Что нас интересует(программа минимум):
- changelog Список изменений в версии
- control Описание пакета
- rules Опции сборки
- init.d (убираем суффик .ex везде, где хотим чтобы этот файл добавился в пакет) Наш скрипт запуска.

Добавляем номер сборки.
dch -i


php (4.4.8-2) unstable; urgency=low

* change name init.d script



Добавляем описание пакета

vi control
Source: php
Section: web
Priority: optional
Maintainer: PHP
Build-Depends: debhelper (>= 4.0.0), autotools-dev
Standards-Version: 3.6.2

Package: php
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} (Важно не трогать, зависимость добавятся сами после сборки)
Description: Php 4.4.8 + FPM patch + spec.patch.


Задаем свои правила сборки
vi rules


config.status: configure
dh_testdir
# Add here commands to configure the package.
CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure --host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr/local/php4 \
--with-config-file-scan-dir=/usr/local/php4/lib/php.d \
--with-mysql=/usr --enable-ftp --enable-exif --with-zlib --with-gd \
--with-iconv --with-curl --with-jpeg --with-jpeg-dir=/usr --with-ttf \
--with-dom --with-domxml --with-freetype-dir=/usr --enable-gd-native-ttf \
--enable-memory-limit --enable-fastcgi --enable-mbstring --enable-fpm \
--with-imap --with-ldap --with-kerberos --with-imap-ssl


Ниже раскоментируем
dh_install
dh_installinit  --init-script=fastcgi_php4   (Можно задать свое имя init скрипта)


Сборка!
Переходим в корень исходника...
dpkg-buildpackage -rfakeroot 

Или
debuild -rfakeroot 


Пакет собирется в директорию выше.

Альтернативный вариант
Сделать
apt-get install checkinstall

Перейти в корень исходников
Повторить
./configure  --bla-bla-bla
./make
./checkinstall


И после этого собирется пакетик, правда preinst и прочии скрипты непонятно как туда засовывать.

Zabbix Auto.fs + Ldap Map

Write a comment

New comments have been disabled for this post.

June 2012
M T W T F S S
May 2012July 2012
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30