Добрый день, уважаемое сообщество. Пожалуйста, помогите разобраться в таком вопросе. Есть вот какая задача:Есть пакет 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. На эту тему уже достаточно погуглил, но вся запара в том что в гугле куча информации о том как собрать пакет из исходных кодов для своей системы. А вот как добавить в этот пакет другие там нет :((Буду рад за вашу помощь :))
>[оверквотинг удален]
>Что надо сделать чтобы собрать бинарный deb с поддержкой memcache, mhash, mcrypt?
>
>
>----------------------------------------------------------------------------
>P.S. На эту тему уже достаточно погуглил, но вся запара в том
>что в гугле куча информации о том как собрать пакет из
>исходных кодов для своей системы. А вот как добавить в этот
>пакет другие там нет :((
>
>Буду рад за вашу помощь :))а что пакеты с названием
php5-memcache
php5-mhash
php5-mcryptу вас не водятся?
дистрибутив то хоть какой?
>а что пакеты с названием
>
>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 пакет с поддержкой данных файлов???
>[оверквотинг удален]
>Система Debian Lenny. На официальном сайте http://packages.debian.org есть исходные тексты пакетов:
>
>- php5-memcache
>- php5-mhash
>- php5-mcrypt
>
>Каждый пакет также состоит из трех файлов .dsc .orig.tar.gz .diff.gz;
>
>Эти файлы также можно скачать. Но вот что делать потом чтобы собрать
>deb пакет с поддержкой данных файлов???no comments
"а думать таки не отменяли" (C) Народная Мудрось
:)))
Думал уже и не раз и гуглил. Только нигде нет руководства по этой теме. Гугл то и делает что рассказывает как просто собрать пакет а вот как туда что то добавить нигде нет :(( Вот и спрашиваю.
>:)))
>Думал уже и не раз и гуглил. Только нигде нет руководства по
>этой теме. Гугл то и делает что рассказывает как просто собрать
>пакет а вот как туда что то добавить нигде нет :((
>Вот и спрашиваю.1 ненадо никуда ничего добавлять -- просто установи пакеты. (инват мать его)
2 ненадо ничего компилировать -- эти пакеты уже собраны для вас и присутствуют в стандартнной поставке lenny
3. если для вас сложно не пользуйтесь apt-get - используйте aptitude - этот и раскажет и покажет.
4. документацию стоит (хотя-бы иногда) читать.
Уважаемый 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.
>А собрать новый пакет php5-x.x.x.deb который уже будет поддерживать php5-memcache php5-mhash php5-mcrypt.
>Чтобы потом обычному пользователю не надо было доставлять необходимые пакеты через
>apt-get.Видимо, плохо гуглили.
Одна из возможностей - создать мета пакет, описав нужные зависимости.
>Видимо, плохо гуглили.
>Одна из возможностей - создать мета пакет, описав нужные зависимости.А можно немного поподробней?
Создаете пустой(в смысле никаких сорцов и правил сборки/установки) пакет у которого в depends прописаны все нужные пакеты. В результате apt по зависимостям все вытянет. В качестве примера тот же kde.P.S. Где то я именно такое задание встречал в виде тестового при приеме на работу. В таком случае метапакет это неверное решение. Надейтесь, что никто из проверяющих не читает этот форум.
> В таком случае метапакет это неверное решение.Как тогда сделать это правильно. Вот что у меня есть:
- 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=noDEB_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_TIMESTAMPSPROG_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
endififeq ($(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
endifCOMMON_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-tzdataBUILTIN_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.makeprepared: 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_listclient:~# 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
Всем кто поможет буду очень благодарен. Заранее спасибо.>Надейтесь, что никто из проверяющих не читает этот форум.
Пусть читают главное научиться )))