Não é possível aumentar as opções que uma ferramenta foi cumprida, então você pode recompila-la se precisar de mais opções adicionadas. Com um pacote como o httpd (Apache) em uma distro baseada no RedHat, isso não é t muito ruim.
Você basicamente precisará de três coisas para fazer isso:
- dependências instaladas para httpd
- versão RPM de origem do httpd
- uma área de rpmbuild
dependências
Você pode usar a ferramenta yum-builddep
para ajudar no esforço. Esta ferramenta fará o download de todos os pacotes necessários para criar o & instalar um determinado RPM. Então você precisa obter uma versão do httpd RPM. Mas certifique-se de obter sua versão de origem normalmente chamada de arquivos src.rpm. Por exemplo:
mypackage-1.0.0-1.src.rpm
RPM de origem
Para o CentOS 6.2, você pode fazer o download desse RPM de origem: - link
construir ambiente
Eu normalmente uso uma ferramenta para configurar isso para mim, rpmdev-setuptree
.
$ yum install rpmdevtools
$ rpmdev-setuptree
Agora altere os diretórios para a área recém-construída do rpmbuild e instale o RPM de origem para que possamos começar a modificar como ele é construído:
$ cd ~/rpm
$ rpm -ivh httpd-2.2.15-15.el6.centos.src.rpm
Como precisamos editar o arquivo httpd.spec
. Este é o arquivo que detalha como o eventual RPM binário deve ser construído:
$ nano SPEC/httpd.spec
Você precisará encontrar uma seção neste arquivo onde o configure está sendo chamado. Eu costumo procurar pela string --prefix
. Esta próxima etapa é onde você pode adicionar suas modificações, o que mudará a forma como suexec
get foi criado.
excerto da sub-rotina de configuração de httpd.spec
../configure \
--prefix=%{_sysconfdir}/httpd \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--with-mpm=$mpm \
--with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{contentdir} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \
$*
Salve o arquivo e agora você está pronto para criar sua versão do httpd.
RPM de origem do edifício
O comando a seguir criará seu RPM:
$ rpmbuild -ba SPEC/httpd.spec
Se tudo der certo, você deve ficar com uma nova versão do RPM no diretório RPM aqui: RPM/httpd-2.2.15-15.el6.centos.x86_64.rpm
.
Agora você pode instalá-lo como qualquer outro RPM normal.