Especifique o local da descompactação no arquivo de especificação do RPM

2

Procurei em toda a Internet uma resposta sobre isso e não consegui nada por isso. Eu estou construindo meu próprio RPM e preciso descompactar certos arquivos para diretórios específicos. Esses diretórios pertencem ao usuário support e, portanto, devem ser mapeados para: ~/exporttool , ~/bin e ~/jlog ( /home/support/directory ). Mas quando eu corro o comando para construir o rpm:

rpmbuild -v -bb SPEC/supportScripts.spec

Eu entendo isso:

File not found: /root/rpmbuild/BUILDROOT/supportScripts-0.1-1.x86_64/home/support/exporttool/cmd2
File not found: /root/rpmbuild/BUILDROOT/supportScripts-0.1-1.x86_64/home/support/exporttool/cmd
File not found: /root/rpmbuild/BUILDROOT/supportScripts-0.1-1.x86_64/home/support/exporttool/cmd8
File not found: /root/rpmbuild/BUILDROOT/supportScripts-0.1-1.x86_64/home/support/exporttool/exportToTransferSyntax.sh

Eu tenho neste link o arquivo de especificações. Alguém por favor pode me dizer o que estou fazendo errado e como eu posso configurar o arquivo de especificações para mapear corretamente para /home/support/directoryOfWhereFilesShouldGo

    
por ryekayo 16.09.2014 / 21:09

1 resposta

1

O RPM nunca deve ser usado para instalar software no diretório /home . Esta é apenas uma má ideia. O RPM deve ser usado apenas para diretórios gerenciados pelo sistema ( /bin , /usr/bin , etc.).

Em vez disso, este software deve ser instalado em um desses diretórios e:

  1. Links simbólicos podem ser feitos para eles ou
  2. As ferramentas, uma vez instaladas, digamos /usr/bin , seriam disponibilizadas por meio do $PATH do sistema.

Sempre que você está tentando fazer algo no Linux / Unix e descobre que está tendo dificuldades para fazê-lo, você deve dar um passo para trás. Esta é a arquitetura / sistema que lhe diz algo. Você provavelmente está fazendo algo que não deveria estar fazendo e está trabalhando contra como ele foi projetado para ser usado.

arquivo de especificações

A macro %install não faz sentido para mim na sua forma atual.

%install
mkdir -p %buildroot/%name
tar -xvf /home/vagrant/rpm/SOURCE/supportScripts-1.tar
mkdir /home/support/exporttool
mkdir /home/support/bin
mkdir /home/support/jlog

Por que você está mkdir 'inserindo esses diretórios depois de descompactar o tarball? Por que você está mesmo fazendo? Se eles estão incluídos no tarball, isso é desnecessário. Se esses diretórios não estiverem incluídos no tarball, eles estarão vazios e o erro que você está recebendo está lhe dizendo isso.

File not found: /root/rpmbuild/BUILDROOT/supportScripts-0.1-1.x86_64/home/support/exporttool/cmd2

Não há nenhum arquivo cmd2 incluído, pois não estava no tarball ou foi produzido durante o %install .

Você pode confirmar isso verificando o inventário do tarball:

$ tar tvf /home/vagrant/rpm/SOURCE/supportScripts-1.tar | \
    grep -E 'support/{exporttool,bin,jlog}'
    
por 17.09.2014 / 13:33