Привет я задал этот вопрос суперпользователю, но я не получил хороший вопрос там, и мне действительно нужен ответ. Я знаю, что некоторые из Вас здесь могут ответить на этот вопрос.
Я установил nginx через конфетку. Теперь я хочу добавить модуль, но я должен скомпилировать источник снова и включать новый модуль.
Но я не могу найти источник. Делает кто-то знает то, что я должен сделать, чтобы перекомпилировать источник и вложить модуль.
Обновление
Я сделал все в ответе от Patrick, и он работал отлично. Однако, когда теперь, когда я выполняю вкусное обновление, оно хочет обновить установленного об/мин с той же версией.
Я могу просто позволить ему обновить, или я должен указать, что это уже актуально.
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*