The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Внесение изменений в deb пакет"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 18-Мрт-09, 14:22 
Добрый день, уважаемое сообщество. Пожалуйста, помогите разобраться в таком вопросе. Есть вот какая задача:

Есть пакет php5-x.x.src.deb.
Или просто скачанные три файла:

- php5_5.2.6.dfsg.1-1+lenny2.dsc
- php5_5.2.6.dfsg.1.orig.tar.gz
- php5_5.2.6.dfsg.1-1+lenny2.diff.gz

Что надо сделать чтобы собрать бинарный deb с поддержкой memcache, mhash, mcrypt?

----------------------------------------------------------------------------
P.S. На эту тему уже достаточно погуглил, но вся запара в том что в гугле куча информации о том как собрать пакет из исходных кодов для своей системы. А вот как добавить в этот пакет другие там нет :((

Буду рад за вашу помощь :))

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Внесение изменений в deb пакет"  
Сообщение от pavel_simple (ok) on 18-Мрт-09, 15:48 
>[оверквотинг удален]
>Что надо сделать чтобы собрать бинарный deb с поддержкой memcache, mhash, mcrypt?
>
>
>----------------------------------------------------------------------------
>P.S. На эту тему уже достаточно погуглил, но вся запара в том
>что в гугле куча информации о том как собрать пакет из
>исходных кодов для своей системы. А вот как добавить в этот
>пакет другие там нет :((
>
>Буду рад за вашу помощь :))

а что пакеты с названием

php5-memcache
php5-mhash
php5-mcrypt

у вас не водятся?

дистрибутив то хоть какой?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 18-Мрт-09, 16:22 
>а что пакеты с названием
>
>php5-memcache
>php5-mhash
>php5-mcrypt
>
>у вас не водятся?
>
>дистрибутив то хоть какой?

Система Debian Lenny. На официальном сайте http://packages.debian.org есть исходные тексты пакетов:

- php5-memcache
- php5-mhash
- php5-mcrypt

Каждый пакет также состоит из трех файлов .dsc  .orig.tar.gz  .diff.gz;
Эти файлы также можно скачать. Но вот что делать потом чтобы собрать deb пакет с поддержкой данных файлов???

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Внесение изменений в deb пакет"  
Сообщение от pavel_simple (ok) on 18-Мрт-09, 16:24 
>[оверквотинг удален]
>Система Debian Lenny. На официальном сайте http://packages.debian.org есть исходные тексты пакетов:
>
>- php5-memcache
>- php5-mhash
>- php5-mcrypt
>
>Каждый пакет также состоит из трех файлов .dsc  .orig.tar.gz  .diff.gz;
>
>Эти файлы также можно скачать. Но вот что делать потом чтобы собрать
>deb пакет с поддержкой данных файлов???

no comments

"а думать таки не отменяли" (C) Народная Мудрось

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 18-Мрт-09, 16:28 
:)))
Думал уже и не раз и гуглил. Только нигде нет руководства по этой теме. Гугл то и делает что рассказывает как просто собрать пакет а вот как туда что то добавить нигде нет :(( Вот и спрашиваю.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Внесение изменений в deb пакет"  
Сообщение от pavel_simple (ok) on 18-Мрт-09, 16:36 
>:)))
>Думал уже и не раз и гуглил. Только нигде нет руководства по
>этой теме. Гугл то и делает что рассказывает как просто собрать
>пакет а вот как туда что то добавить нигде нет :((
>Вот и спрашиваю.

1 ненадо никуда ничего добавлять -- просто установи пакеты. (инват мать его)

2 ненадо ничего компилировать -- эти пакеты уже собраны для вас и присутствуют в стандартнной поставке lenny

3. если для вас сложно не пользуйтесь apt-get - используйте aptitude - этот и раскажет и покажет.

4. документацию стоит (хотя-бы иногда) читать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 18-Мрт-09, 16:54 
Уважаемый pavel_simple, спасибо вам за вашу помощь но задача ведь не просто поставить пакеты:

- apt-get install php5 php5-memcache php5-mhash php5-mcrypt

А собрать новый пакет php5-x.x.x.deb который уже будет поддерживать php5-memcache php5-mhash php5-mcrypt. Чтобы потом обычному пользователю не надо было доставлять необходимые пакеты через apt-get.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Внесение изменений в deb пакет"  
Сообщение от chainik (??) on 18-Мрт-09, 20:23 

>А собрать новый пакет php5-x.x.x.deb который уже будет поддерживать php5-memcache php5-mhash php5-mcrypt.
>Чтобы потом обычному пользователю не надо было доставлять необходимые пакеты через
>apt-get.

Видимо, плохо гуглили.
Одна из возможностей - создать мета пакет, описав нужные зависимости.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 18-Мрт-09, 22:42 
>Видимо, плохо гуглили.
>Одна из возможностей - создать мета пакет, описав нужные зависимости.

А можно немного поподробней?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Внесение изменений в deb пакет"  
Сообщение от angra (ok) on 19-Мрт-09, 06:38 
Создаете пустой(в смысле никаких сорцов и правил сборки/установки) пакет у которого в depends прописаны все нужные пакеты. В результате apt по зависимостям все вытянет. В качестве примера тот же kde.

P.S. Где то я именно такое задание встречал в виде тестового при приеме на работу. В таком случае метапакет это неверное решение. Надейтесь, что никто из проверяющих не читает этот форум.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Внесение изменений в deb пакет"  
Сообщение от Денис email(??) on 19-Мрт-09, 13:48 
> В таком случае метапакет это неверное решение.

Как тогда сделать это правильно. Вот что у меня есть:

- php5-5.2.6.dfsg.1     // каталог с исходниками php5
- php-memcache-3.0.1    // каталог с исходниками php5-memcache

-----------------------------------------------

Насколько я понял надо изменить правильно файлы ./debian/control и ./debian/rules Вот что там есть:

1. ./debian/control :

Source: php5
Section: web
Priority: optional
Maintainer: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
Uploaders: Adam Conrad <adconrad@0c3.net>, Jeroen van Wolffelaar <jeroen@wolffelaar.nl>, Ondřej Surý <ondrej@debian.org>, Sean Finney <seanius@debian.org>, Thijs Kinkhorst <thijs@debian.org>
Build-Depends: apache2-prefork-dev, autoconf, automake1.4, bison, chrpath, debhelper (>= 5), firebird2.0-dev [i386 amd64 powerpc sparc] | firebird1.5-dev [i386 amd64] | firebird2-dev [i386 amd64], flex, freetds-dev, libapr1-dev (>= 1.2.7-8), libbz2-dev, libc-client-dev, libcurl4-openssl-dev | libcurl-dev, libdb4.6-dev, libexpat1-dev (>= 1.95.2-2.1), libfreetype6-dev, libgcrypt11-dev, libgd2-xpm-dev, libgmp3-dev, libjpeg62-dev, libkrb5-dev, libldap2-dev, libmcrypt-dev, libmhash-dev (>= 0.8.8), libmysqlclient15-dev, libncurses5-dev, libpam0g-dev, libpcre3-dev (>= 6.6), libpng12-dev, libpq-dev, libpspell-dev, librecode-dev, libsasl2-dev, libsnmp-dev, libsqlite0-dev, libssl-dev, libt1-dev, libtidy-dev, libtool, libwrap0-dev, libxmltok1-dev, libxml2-dev, libxslt1-dev (>= 1.0.18), quilt, re2c, unixodbc-dev, zlib1g-dev, tzdata
Build-Conflicts: bind-dev
Standards-Version: 3.8.0
Vcs-Svn: svn://svn.debian.org/pkg-php/php5/trunk
Vcs-Browser: http://svn.debian.org/wsvn/pkg-php/php5/trunk
Homepage: http://www.php.net/

Package: php5
Architecture: all
Depends: libapache2-mod-php5 (>= ${source:Version}) | libapache2-mod-php5filter (>= ${source:Version}) | php5-cgi (>= ${source:Version}), php5-common (>= ${source:Version})
Description: server-side, HTML-embedded scripting language (metapackage)
...................

Package: php5-common
Architecture: any
Depends: sed (>= 4.1.1-1), ${shlibs:Depends}
Provides: php5-json
Conflicts: php5-json
Description: Common files for packages built from the php5 source
......................

// В этом файле даже есть подключение модулей php5-mcrypt и php5-mhash:

.......................
.......................

Package: php5-mcrypt
Architecture: any
Depends: ${shlibs:Depends}, ${php:Depends}, ${misc:Depends}, php5-common (= ${binary:Version})
Description: MCrypt module for php5
This package provides a module for MCrypt functions in PHP scripts.

Package: php5-mhash
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${php:Depends}, php5-common (= ${binary:Version})
Description: MHASH module for php5
This package provides a module for mhash functions in PHP scripts.
.........................

//Ну и так далее всего тут описано 28 пакетов таких как libapache2-mod-php5, php5-cgi, php5-cli, php5-dev........

----------------------------------------------------------------------------------

Когда выполняю команду dpkg-buildpackage -rfakeroot
То где-то пол часа что -то собираеться и в итоге имею 28 deb пакетов котрые перечисленны в файле control.
-----------------------------------------------------------------------------------

А из задания видно что надо собрать 1 бинарный deb пакет ((( Может кто-то знает как это сделать?

------------------------------------------------------------------------------------

Затем есть еще большой файлик ./debian/rules вот его часть:

#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 by Joey Hess.
#
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independent
# package.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This has to be exported to make some magic below work.
export DH_OPTIONS

# Set this flag to 'yes' if you want to disable all modifications breaking abi
# compatibility to upstream
PHP5_COMPAT=no

DEB_HOST_GNU_TYPE    ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_ARCH   ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

PHP5_SOURCE_VERSION   = $(shell dpkg-parsechangelog | grep ^Version | sed "s/Version: //")
PHP5_UPSTREAM_VERSION = $(shell echo $(PHP5_SOURCE_VERSION) | sed -e "s/-.*//" -e "s/.*://")
PHP5_DEBIAN_REVISION  = $(shell echo $(PHP5_SOURCE_VERSION) | sed "s/.*-//")

# specify some options to our patch system
QUILT_DIFF_OPTS=-p
QUILT_NO_DIFF_TIMESTAMPS=1
export QUILT_DIFF_OPTS QUILT_NO_DIFF_TIMESTAMPS

PROG_SENDMAIL = /usr/sbin/sendmail
ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
  CFLAGS += -O2
endif
CFLAGS += -Wall -fsigned-char -fno-strict-aliasing
# LFS support
ifneq (yes,$(PHP5_COMPAT))
  CFLAGS += $(shell getconf LFS_CFLAGS)
endif

# Enable IEEE-conformant floating point math on alphas (not the default)
ifeq (alpha-linux-gnu,$(DEB_HOST_GNU_TYPE))
  CFLAGS += -mieee
endif

ifeq ($(DEB_HOST_GNU_TYPE), $(findstring $(DEB_HOST_GNU_TYPE), ia64-linux-gnu powerpc64-linux-gnu))
  CFLAGS += -g
else
  CFLAGS += -gstabs
endif

# Old magic.mime location:
ifeq ($(wildcard /usr/share/misc/file/magic.mime), /usr/share/misc/file/magic.mime)
MAGIC_MIME = /usr/share/misc/file/magic.mime
endif
# New magic.mime location:
ifeq ($(wildcard /usr/share/file/magic.mime), /usr/share/file/magic.mime)
MAGIC_MIME = /usr/share/file/magic.mime
endif

# only enable interbase support for i386/amd64/powerpc/sparc
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386 powerpc sparc))
    IBFLAGS=--with-interbase=shared,/usr \
        --with-pdo-firebird=shared,/usr
endif

COMMON_CONFIG=--build=$(DEB_BUILD_GNU_TYPE) \
        --host=$(DEB_HOST_GNU_TYPE) \
        --mandir=/usr/share/man \
        --enable-memory-limit \
        --disable-debug \
        --with-regex=php \
        --disable-rpath \
        --disable-static \
        --with-pic \
        --with-layout=GNU \
        --with-pear=/usr/share/php \
        --enable-calendar \
        --enable-sysvsem \
        --enable-sysvshm \
        --enable-sysvmsg \
        --enable-track-vars \
        --enable-trans-sid \
        --enable-bcmath \
        --with-bz2 \
        --enable-ctype \
        --with-db4 \
        --without-gdbm \
        --with-iconv \
        --enable-exif \
        --enable-filepro \
        --enable-ftp \
        --with-gettext \
        --enable-mbstring \
        --with-pcre-regex=/usr \
        --enable-shmop \
        --enable-sockets \
        --enable-wddx \
        --with-libxml-dir=/usr \
        --with-zlib \
        --with-kerberos=/usr \
        --with-openssl=/usr \
        --enable-dbx \
        --enable-soap \
        --enable-zip \
        --with-mime-magic=$(MAGIC_MIME) \
        --with-exec-dir=/usr/lib/php5/libexec \
        --with-system-tzdata

BUILTIN_EXTENSION_CHECK=$$e=get_loaded_extensions(); natcasesort($$e); \
            $$s="The following extensions are built in:"; \
            foreach($$e as $$i) { $$s .= " $$i"; } \
            echo("php:Extensions=" . wordwrap($$s . ".\n", 75, "\$${Newline} "));

# include the patch/unpatch rules from quilt
include /usr/share/quilt/quilt.make

prepared: prepared-stamp
prepared-stamp: $(QUILT_STAMPFN

...................................
...................................
...................................

configure: configure-apache2-stamp configure-apache2filter-stamp configure-cli-stamp configure-cgi-stamp

configure-apache2-stamp: prepared-stamp
    dh_testdir
    if [ -d apache2-build ]; then rm -rf apache2-build; fi
    -mkdir apache2-build
    cd apache2-build && \
        CFLAGS="$(CFLAGS)" PROG_SENDMAIL="$(PROG_SENDMAIL)" ../configure \
        --prefix=/usr --with-apxs2=/usr/bin/apxs2 \
        --with-config-file-path=/etc/php5/apache2 \
        --with-config-file-scan-dir=/etc/php5/apache2/conf.d \
        $(COMMON_CONFIG) \
        --without-mm \
        --with-curl=shared,/usr \
        --with-zlib-dir=/usr \
        --with-gd=shared,/usr --enable-gd-native-ttf \
        --with-gmp=shared,/usr \
        --with-jpeg-dir=shared,/usr \
        --with-xpm-dir=shared,/usr/X11R6 \
        --with-png-dir=shared,/usr \
        --with-freetype-dir=shared,/usr \
        --with-imap=shared,/usr \
        --with-imap-ssl \
        $(IBFLAGS) \
        --with-ttf=shared,/usr \
        --with-t1lib=shared,/usr \
        --with-ldap=shared,/usr \
        --with-ldap-sasl=/usr \
        --with-mcrypt=shared,/usr \
        --with-mhash=shared,/usr \
        --with-mysql=shared,/usr \
        --with-mysqli=shared,/usr/bin/mysql_config \
        --with-pspell=shared,/usr \
        --with-unixODBC=shared,/usr \
        --with-recode=shared,/usr \
        --with-xsl=shared,/usr \
        --with-snmp=shared,/usr \
        --with-sqlite=shared,/usr \
        --with-mssql=shared,/usr \
        --with-tidy=shared,/usr \
        --with-xmlrpc=shared \
        --with-pgsql=shared,/usr PGSQL_INCLUDE=`pg_config --includedir` \
        --enable-pdo=shared \
        --without-pdo-dblib \
        --with-pdo-mysql=shared,/usr \
        --with-pdo-odbc=shared,unixODBC,/usr \
        --with-pdo-pgsql=shared,/usr/bin/pg_config \
        --with-pdo-sqlite=shared,/usr \
        --with-pdo-dblib=shared,/usr
    cd apache2-build && \
    cp ../Zend/zend_ini_scanner.c ../Zend/zend_language_scanner.c \
       ../Zend/zend_ini_parser.h ../Zend/zend_language_parser.h \
       ../Zend/zend_ini_parser.c ../Zend/zend_language_parser.c \
       Zend/
    touch configure-apache2-stamp

-----------------------------------------------------------------------------------------

ТУТ ЕСТЬ (если я правильно понимаю) ПОДКЛЮЧЕНИЕ библиотек mhash и mcrypt:
    --with-mcrypt=shared,/usr \
    --with-mhash=shared,/usr \

Но непонятно где лежат исходники.
-----------------------------------------------------------------------------------------

И вот что надо добавить в этот файл чтобы подключить php5-memcache исходные коды которого лежат в каталоге php-memcache-3.0.1

Вот его структура:
client:~# ls -l /root/build3/php-memcache-3.0.1/

drwxr-xr-x 3 root root  4096 Мар 18 21:55 debian
-rw-r--r-- 1 root root 42081 Мар 25  2008 memcache-3.0.1.tgz
-rw-r--r-- 1 root root    51 Мар 18 21:55 memcache-3.0.1.tgz.cdbs-config_list

client:~# ls -l /root/build3/php-memcache-3.0.1/debian/
итого 52
-rw-r--r-- 1 root root 2129 Мар 18 21:55 changelog
-rw-r--r-- 1 root root    2 Мар 18 21:55 compat
-rw-r--r-- 1 root root  711 Мар 18 21:55 control
-rw-r--r-- 1 root root 5035 Мар 18 21:55 copyright
-rw-r--r-- 1 root root  229 Мар 18 21:55 memcache.ini
drwxr-xr-x 2 root root 4096 Мар 18 21:55 patches
-rw-r--r-- 1 root root  153 Мар 18 21:55 php5-memcache.postinst
-rw-r--r-- 1 root root  204 Мар 18 21:55 php5-memcache.postrm
-rw-r--r-- 1 root root  153 Мар 18 21:55 phpX-memcache.postinst
-rw-r--r-- 1 root root  204 Мар 18 21:55 phpX-memcache.postrm
-rwxr-xr-x 1 root root 1543 Мар 18 21:55 rules
-rw-r--r-- 1 root root   71 Мар 18 21:55 watch


Всем кто поможет буду очень благодарен. Заранее спасибо.

>Надейтесь, что никто из проверяющих не читает этот форум.

Пусть читают главное научиться )))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру