RPM% install section

0

Então, estou um pouco confuso com o processo de rpmbuild. Agora estou mantendo uma enorme quantidade de scripts criados anteriormente e, embora a maioria trabalhe, existem diferenças suficientes entre eles que encontrar uma abordagem consistente não está acontecendo.

  • Alguns arquivos são copiados individualmente (muito tediosos) para um local temporário antes para embalagem.

  • Alguns usam o arquivo de especificação do autor original, estamos apenas modificando configs ou código.

  • Alguns são feitos em casa, mas aparentemente foram criados com o mesmo nível de entender como eu!

Especificamente, adoraria ter apenas a abordagem make; make install , mas, enquanto make cria o software muito bem, make install realmente o instala em meu sistema.

O que eu gostaria de fazer é usar make install, mas tê-lo colocado em um diretório de trabalho para o propósito do empacotador. Eu quero o software para instalar na máquina de destino em /usr/bin etc, mas quando eu executo make install, eu quero ir para /tempDir/usr/bin - faz sentido? Basicamente, eu só quero evitar poluir meu sistema com software que estou empacotando; não parece certo que tudo esteja plugado. Deve ser algo mal configurado ou isso é normal?

Trechos do arquivo de especificação com o qual estou trabalhando. Copiando o arquivo de origem para /usr/src/redhat/SOURCES e criando com rpmbuild -bb <specfilename> .

BuildRoot:      /var/tmp/%{name}-%{version}-root
Source0:        %{name}-%{version}.tar.gz

%prep
%setup -q

%build
./configure <config opts>
make 

%install
rm -rf $RPM_BUILD_ROOT
make install
    
por Jon 23.01.2015 / 17:12

1 resposta

2

Os arquivos que devem ser empacotados precisam ser instalados / isolados em uma árvore de sombra.

Isso geralmente é feito substituindo] DESTDIR como

make DESTDIR=%{buildroot} install

na seção% install.

    
por 23.01.2015 / 20:04