Может этот пакет быть перекомпилированным

Привет я задал этот вопрос суперпользователю, но я не получил хороший вопрос там, и мне действительно нужен ответ. Я знаю, что некоторые из Вас здесь могут ответить на этот вопрос.

Я установил nginx через конфетку. Теперь я хочу добавить модуль, но я должен скомпилировать источник снова и включать новый модуль.

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

Обновление

Я сделал все в ответе от Patrick, и он работал отлично. Однако, когда теперь, когда я выполняю вкусное обновление, оно хочет обновить установленного об/мин с той же версией.

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

5
задан Saif Bechan 4 April 2010 в 12:06
поделиться

1 ответ

Redhat и родственные дистрибутивы (fedora, centos) хранят свои исходные rpms в очень регулярном дереве каталогов. для RHEL5 вы хотите: ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/ для других выпусков вы можете просматривать ftp-сервер, пока не найдете что ты хочешь. В противном случае найдите в Google точную версию nginx, которая у вас есть ( rpm -q nginx )

Предполагая, что вы можете найти srpm, установите его с помощью rpm:

rpm -ivh nginx-xxxx.src.rpm

Это поместит исходные тексты и файлы сборки в / usr / src / redhat / {BUILD, SPEC, SRC, SOURCES} . Вы можете изменить .spec в / usr / src / redhat / SPEC , чтобы собрать нужный модуль вместе с остальной частью nginx, или вы можете собрать nginx вручную.

Какой модуль вы хотите построить? В Fedora nginx.spec указывается несколько модулей при запуске configure . Это может быть так же просто, как добавить здесь строку:

./configure \
[snip...]
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_perl_module \
[snip...]

После внесения любых изменений в nginx.spec вы можете создать окончательный rpm с помощью rpmbuild :

rpmbuild -ba nginx.spec

Если пакет собирается без ошибок, rpmbuild оставит его в / usr / src / redhat / RPMS /

Обновление: yum захочет заменить ваш пакет nginx по мере появления обновлений. Вероятно, вы захотите пересобрать каждый новый пакет по мере его появления, используя тот же процесс, что и выше. Однако Если безопасность не является проблемой, вы можете просто исключить nginx из списка обновлений, добавив следующее в свою конфигурацию yum (вероятно, /etc/yum.repos.d / $ {repo} .repo или аналогичный. Не забудьте связать его с правильным репо ):

exclude=nginx*

Или запустить yum с параметром --exclude

yum --exclude=nginx*
6
ответ дан 14 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: