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


13

Na minha organização, implantamos todo o nosso software em nossas máquinas de produção usando RPM. Nosso processo de compilação (que é automatizado) envolve verificar a fonte do controle de versão, tarar esse diretório de origem e executar o rpmbuild usando o tarball de origem. O rpmbuild usa apenas esse tarball para desarmar as fontes e trabalhar nelas. Portanto, parece que todo o negócio de tarar e desarmar é apenas uma etapa extra desnecessária no processo de compilação. Existe uma maneira de apenas especificar o diretório de origem no arquivo de especificações, evitando essas etapas extras?

Respostas:


5

Sim, você pode fazer isso. Não liste nenhum Sources. Na %prepseção, não use a %setupmacro (que mostra a fonte); em vez disso, basta verificar a fonte.

Observe que você não poderá criar SRPMs se fizer isso.


Isso faz. Eu só preciso modificar o procedimento de compilação para verificar as coisas no diretório BUILD do rpm. Obrigado!
Eddie

10

Essa pergunta é um pouco antiga, mas, caso outras pessoas a encontrem 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 de configuração , você deve digitar o que deseja fazer, ou seja, copiar o diretório de origem de SOURCES para BUILD, em vez de descompactar um arquivo morto. Descobri que você também precisa adicionar um CD ao seu diretório de origem nas seções de compilação e instalação.

Fragmento de exemplo

%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}

Deveria %{_topdir}/SOURCESser %{_sourcedir}? E %{_topdir}/BUILDpoderia ser %{buildroot}? (À parte, para situações semelhantes, mas diferentes, nas quais você está tentando adicionar arquivos extras para substituir os extraídos %setup, os documentos do Fedora recomendam o uso de %{SOURCE2}etc - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.