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.
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