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 вручную.
Какой модуль вы хотите построить? В nagx.spec fedora, несколько модулей указываются при запуске 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*