Compile o RPM usando o diretório de origem, não o tarball

10

Na minha organização, implantamos todo o nosso software em nossas máquinas de produção usando o RPM. Nosso processo de compilação (que é automatizado) envolve a verificação da origem do controle de versão, o tarring desse diretório de origem e a execução do rpmbuild usando esse tarball de origem. O rpmbuild usa apenas esse tarball para descompactar as fontes para trabalhar nelas. Assim, parece que todo o negócio de tarar e desarmar é apenas um passo extra desnecessário no processo de construção. Existe uma maneira de especificar apenas o diretório de origem no arquivo de especificação, evitando essas etapas extras?

    
por Eddie 14.09.2011 / 20:46

2 respostas

3

Sim, você pode fazer isso. Não liste nenhum Source s. Na seção %prep , não use a macro %setup (que desativa a origem); em vez disso, basta verificar a fonte.

Note que você não poderá construir SRPMs se fizer isso.

    
por 14.09.2011 / 21:04
8

Esta questão é um pouco antiga, mas no caso de outras pessoas a encontrarem na pesquisa, existe uma maneira mais correta de fazer isso que também permite a criação de um SRPM.

Na seção de preparação, em vez de usar a macro configuração , você em vez disso, basta digitar o que você deseja fazer, ou seja, copiar o diretório de origem de SOURCES para BUILD, em vez de descompactar um archive. Descobri que você também precisa adicionar um cd em seu diretório de origem nas seções de criação e instalação.

Exemplo de snippet

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}
    
por 27.09.2016 / 23:52

Tags