Форум русской поддержки ОС Fedora linux
Всем доброго времени суток. Назрела необходимость собрать последнюю php-5.2, а засорять систему make install'ом не хочется.
Система — Fedora 14 x86_64
Я ранее пакеты не собирал, поэтому заранее извиняюсь за свою тупизну в данном вопросе.
Вообщем последовательность действий:
0. yum groupinstall "Development Tools" yum install rpmdevtools mkdir -p /root/rpmbuild/{RPMS,SRPMS,SPECS,SOURCES,BUILD} echo '%_topdir /root/rpmbuild/' > ~/.rpmmacros 1. скачал и поставил php-5.2.13-1.fc11.src.rpm 2. заменил в каталоге SOURCES файл php-5.2.13.tar.bz2 на скачанный с php.net php-5.2.14.tar.bz2 3. в php.spec заменил "Version: 5.2.13" на "Version: 5.2.14" 4. поставил все devel-пакеты которые просил rpmbuild 5. rpmbuild -ba php.spec
В итоге получил ситуацию описанную тут
Сообственно вопрос: как правильно приминить указанный по ссылке патч к SRPM'у?
Заранее благодарен за любую помощь.
Отредактированно WhiteWolf (2010-11-22 13:55:51)
Неактивен
Разобрался. Собрал. Если кому интересно — чуть позже опишу как.
Неактивен
Интересно. Описывайте.
Неактивен
1. Устанавливаем необходимы для сборки пакеты
yum groupinstall "Development Tools" yum install rpmdevtools yum-utils yum-builddep php
2. Создаем окружение для сборки RPM (в моём примере сборка происходит от рута, хотя из соображений безопасности лучще собирать от пользователя)
mkdir -p /root/rpmbuild/{RPMS,SRPMS,SPECS,SOURCES,BUILD} echo '%_topdir /root/rpmbuild/' > /root/.rpmmacros
3. Скачиваем и устанавливаем SRPM php из Fedora 11 (последняя доступная версия — 5.2.13)
wget http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/11/SRPMS/php-5.2.13-1.fc11.src.rpm rpm -ihv php-5.2.13-1.fc11.src.rpm
4. Переходим в каталог /root/rpmbuild/SOURCES и скачиваем архив (обязательно tar.bz2) с исходниками php 5.2.14 с php.net
cd /root/rpmbuild/SOURCES rm -f ./php-5.2.*.tar.bz2 wget http://www.php.net/distributions/php-5.2.14.tar.bz2
5. Для сборки пакетов в Fedora 14 нам понадобится дополнительный патч (проблема описана здесь)
Привиденный по ссылке патч необходимо подправить как описано ниже или взять уже исправленый патч. Заранее извиняюсь за возможную неправильную правку патча, до этого с патчами не работал.
Заменяем строки 4 и 53 на
## $Id: configure.in 301437 2010-07-21 10:32:07Z johannes $ -*- autoconf -*-
и
dnl $Id: config.m4 291364 2009-11-27 23:41:13Z rasmus $ -*- autoconf -*-
соответсвенно.
6. Переходим в каталог /root/rpmbuild/SPECS и правим файл php.spec (или берем уже исправленный).
заменяем
Version: 5.2.13
на
Version: 5.2.14
Добавляем в секцию
# Build fixes ... Patch8: php-5.2.14-m4-divert.patch
добавляем после
%prep %setup -q ... %patch8 -p1 -b .m4-divert
опционально можете что либо дописать в changelog
7. Приступаем к сборке
/root/rpmbuild/SPECS
rpmbuild -ba php.spec
если rpmbuild укажет на неудовлетворенные зависимости — доустановите указанные пакеты и заного запустите
rpmbuild -ba php.spec
8. Ждём окончания сборки и если всё прошло хорошо, то в каталоге /root/rpmbuild/RPMS/ будут лежать собранные RPM-пакеты php.
Теперь можно поставить нужные пакеты в систему. Лично я пошёл дальше и сделал свой репозиторий как описано здесь и привязал его к yum как описано здесь с той лишь разницей что в моём случае openssl, readline и mod_suphp ставяться из федоровского репозитария, т.е. в fedora.repo и в fedora-updates.repo добавляем только:
exclude=php-* php-common php-pdo
Теперь я могу удобно ставить и обновлять php-5.2 на моих серверах через yum
Неактивен