Building PHP RPM

fender

Новичок
Building PHP RPM

Пытаюсь установить на веб-сервере (Fedora Core 2) более свежую версию PHP (с дистрибутивом идет 4.3.4)
Пытаюсь поставить 4.3.8 но не из исходников скомпилить, а сделать RPM с помощью spec-файла идущего с сырцами.

В системе уже стоят:
httpd-2.0.49-4
httpd-devel-2.0.49-4
postgresql-7.4.2-1
postgresql-contrib-7.4.2-1
postgresql-devel-7.4.2-1
postgresql-libs-7.4.2-1
postgresql-server-7.4.2-1

[php4.spec.in] :
%build
set -x
./buildconf --force
./configure --prefix=/usr \
--with-apxs2=/usr/sbin/apxs \
--with-pgsql=shared \

# rpmbuild -ba php4.spec.in
...........
...........
Thank you for using PHP.

+ --with-apxs2=/usr/sbin/apxs --with-pgsql=shared
/var/tmp/rpm-tmp.68421: line 31: --with-apxs2=/usr/sbin/apxs: No such file or directory
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.68421 (%build)

-~{}~ 12.10.04 12:41:

/usr/sbin/apxs есть (непонятно почему он говорит No such file or directory)
./configure я так понял отработал нормально так как "Thank you for using PHP."
Как понять в чем трабл и что делать дальше.
RPM Howto про создание спец-файлов я прочел, но без совета опытных людей я до конца в этом вряд ли разберусь.
 

fender

Новичок
tony2001
ну я так понимаю что просто переименовав файл ситуацию не изменишь.
а по ошибке что-нибудь можешь сказать?
 

tony2001

TeaM PHPClub
думаю, что ошибка где-то в другом месте.
выполни ./configure с нужными параметрами и получишь php4.spec из шаблона.
 

fender

Новичок
то есть после обычной работы ./configure строится нормальный spec-файл?
Спасибо, попробую!

-~{}~ 12.10.04 14:06:

я попробовал запустил ./configure без параметров, отработал нормально
создался php4.spec
но "rpmbuild -ba php4.spec" - та же самая ошибка

[root@ php-4.3.6]# ls /usr/sbin/apxs
/usr/sbin/apxs

-~{}~ 12.10.04 14:13:

может я шаблон чуть-чуть ковырял и напортил? сейчас попробую заново с нормальными исходниками.
кстати что такое ./buildconf - что за скрипт? какого его назчание?

-~{}~ 12.10.04 14:40:

после configure spec-файл создаеся точно такой же как шаблон (мои параметры игнорируются). Это правильно?

-~{}~ 12.10.04 14:43:

+ set -x
+ ./buildconf
You should not run buildconf in a release package.
use buildconf --force to override this check.

tony2001
извини что я тебя всем этим забросал, но буду очень благодарен если найдешь немного терпения и поможешь разобраться.
 

tony2001

TeaM PHPClub
ок, попробую сам сейчас.
никогда не было интересно, честно говоря..

-~{}~ 12.10.04 15:36:

всё-таки, видимо, spec надо править руками.
я сделал такой:
http://tony2001.phpclub.net/tmp/php4.spec
положил php-4.3.10.dev.tar.gz в /usr/src/../SOURCES
и получил src.rpm в результате.
 

fender

Новичок
взял твой spec:
у меня все равно предлагает ./buildconf с опцией --force запустить не особо вдаваясь в подробности почему. А куда лег src.rpm в результате?
 

tony2001

TeaM PHPClub
так так и должно быть.
ты убери просто ./buildconf из spec, если у тебя уже есть ./configure
либо добавь к нему --force - у меня-то не релиз, а девелоперская версия из CVS, а в релизе действительно ./buildconf по умолчанию выдает такое сообщение.
 

fender

Новичок
Круто.
Получилось, большое тебе спасибо.
Только вот вкратце: что в том исходном spec-файле было неправильно? Блок if после configure? который в зависимости от совершенно непонятных условий еще раз пытался выполлнить ./configure с разными опциями?
 

tony2001

TeaM PHPClub
там срабатывала строка ./configure та, которая была внизу.
я тоже сначала не понял и правил верхнюю =)

ты ж добавь только к ./configure нужные опции, там по дефолту только xml включен.
 

fender

Новичок
все, я понял, в зависимости от того утановлен expat или нет дописывлась --with-xml
точно, great thanxxxxx еще раз! :)

-~{}~ 12.10.04 16:25:

нет, стоп, еще вопросец:
php я получу, а
php-pgsql
php-imap
php-ldap
и т.д., которые тоже отдельными rpm-ками идут в дистрибутивах редхатовских? Или они будут уже все в одном пакете, если я включу эти расширения при конфигрурации?

Тогда как разбить их на отдельные пакеты - наверное для этого в spec должен быть отдельный макрос? (что-то вроде %package там было)
 

tony2001

TeaM PHPClub
честно говоря, без понятия.
а тебе это зачем? ты собираешь свой дистриб и хочешь сделать супер-универсальные пакеты?
или тебе на сервер поставить надо, но пакетом?
 

fender

Новичок
на сервер пакетом
так как думаю, что если вся система из пакетов состоит то и надежней и удобней все программы ставить также.
Может я и не прав, не так давно я с Линуксом связался, так что если я заблуждаюсь, поправь.

-~{}~ 12.10.04 16:55:

плюс хочу пакетом чтобы apt или похожие проги этот пакет могли этот пакет обновить из инета
 

tony2001

TeaM PHPClub
ха.
если хочешь, чтобы apt его обновлял, тогда и качай его apt.

>если вся система из пакетов состоит то и надежней и удобней все программы ставить также.
так а в смысл иметь вместо 1-го пакета целых 10?
ты что, их по отдельности будешь обновлять?
 

fender

Новичок
>так а в смысл иметь вместо 1-го пакета целых 10?
согласен, здесь у меня скорее спортивный интерес :)

а насчет apt: я думал что apt использует rpm, а он должен брать информацию о пакете и сравнивать ее с пакетами на сервере, с которым работает apt.
 

tony2001

TeaM PHPClub
fender
теоретически - да.
можешь даже попробовать, думаю будет работать.

практически - я себе слабо представляю ситуацию, когда я соберу пакет сам (а не возьму его из того же apt), но при этом буду хотеть обновлять его через apt - это же бессмысленно.
 

fender

Новичок
а почему у нас не получился бинарный пакет, ведь опция -ba должна была сделать 2 пакета - бинарный и source rpm
 
Сверху