Erros de compilação do RPM

3

Eu estou tentando construir um RPM, mas quando eu uso este comando para construí-lo:

[root@vmdb SPEC]# rpmbuild -v -bb SPEC/supportScripts.spec

Eu sempre recebo este erro:

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.gG9C7Y
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf supportScripts-1
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/supportScripts-1.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd supportScripts-1
/var/tmp/rpm-tmp.gG9C7Y: line 34: cd: supportScripts-1: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.gG9C7Y (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.gG9C7Y (%prep)

Procurei na internet por que esse erro pode ocorrer e é devido a um argumento incorreto com a macro que estou usando em% prep /% setup. Eu não tenho certeza do que eu preciso em substituição para consertá-lo e está ficando frustrante. É assim que meu arquivo de especificação se parece:

Name:           supportScripts
Version:        1
Release:        1
Summary:        All the support scripts bundled into an RPM.
BuildArch:      noarch

Group:          Development/Tools
License:        GPL
URL:            http://localhost
Source0:        supportScripts-1.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
These are all the support tools we need for new Hardware Agent builds. This will package all the scripts support uses for new builds.

%prep
%setup -q

%install
mkdir -p "$RPM_BUILD_ROOT/opt"
cp -R * "$RPM_BUILD_ROOT/opt"

%files
/opt/

%clean
rm -rf $RPM_BUILD_ROOT

%post
chown -R support:support /opt/*
chmod -R 775 /opt/

ATUALIZAÇÃO: O que é estranho é que eu encontrei o rpm completamente construído em /root/rpmbuild/RPMS/noarch . Eu corri o comando:

rpm -ivh supportScripts-1-1.noarch.rpm

para descompactar todos os scripts, e milagrosamente está lá! Minha próxima pergunta é: Devo estar preocupado com algum erro com o comando rpmbuild que fiz?

    
por ryekayo 12.09.2014 / 20:25

1 resposta

4

O RPM espera que seu pacote siga as diretrizes de embalagem padrão do software Unix. As diretrizes de lançamento do GNU são típicas, mas muitos softwares não-GNU seguem essas regras também .

Especificamente aqui, você tem um pacote chamado supportScripts, versão 1, então espera-se que o tarball seja chamado de supportScripts-1.tar.gz , e é esperado que ele seja descompactado em um diretório chamado supportScripts-1 .

Embora possa haver maneiras de transformar o RPM em um esquema fora do padrão, é mais simples seguir o que ele espera.

    
por 12.09.2014 / 21:06