Como o RPM lida com locais de arquivos?

1

Estou tentando criar um arquivo .spec para criar o mapserver como um pacote rpm. Eu estou construindo em um servidor de 64 bits RHEL6. Eu sou um pouco novo em todo o conceito, então tenha paciência comigo se não estou vendo algo muito óbvio. Nos arquivos rpm, posso usar algumas referências ao diretório como %{_libdir} , %{_bindir} e %{_libexecdir} . Onde estão esses caminhos de dir configurados e quais podem ser usados?

A parte dos arquivos% da minha especificação de rpm parece ligada:

%files
%defattr(-,root,root)
%doc README COMMITERS GD-COPYING HISTORY.TXT
%doc INSTALL MIGRATION_GUIDE.txt
%doc symbols tests
%doc fonts
%{_bindir}/*
%{_libdir}/libmapserver*.so
%{_libexecdir}/mapserv

mas quando executo minha compilação, recebo os erros:

File not found by glob: /home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib64/libmapserver*.so
File not found: /home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/libexec/mapserv

Parece que os arquivos que estão faltando estão localizados em

/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib/libmapserver-6.2.1.so
/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib/libmapserver.la
/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib/libmapserver.so
/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib/debug/usr/lib/libmapserver-6.2.1.so.debug
/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/lib/debug/usr/lib/libmapserver.so.debug

/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/usr/bin/mapserv
/home/kfadm/rpmbuild/BUILDROOT/mapserver-6.2.1-3.x86_64/var/www/cgi-bin/mapserv

Como corrijo a especificação do rpm para encontrar os arquivos no caminho correto?

    
por Jesper Kihlberg 04.09.2013 / 16:04

2 respostas

3

Esse problema decorre do fato de que o RHEL deseja que as bibliotecas de 64 bits sejam instaladas no diretório / usr / lib64, em vez do diretório padrão / usr / lib.

O mapserver 6.2.1 usa o autoconf e inclui uma opção --libdir. No seu arquivo .spec, modifique o comando ./configure: %configure --libdir=$RPM_BUILD_ROOT%{_libdir}

    
por 04.09.2013 / 16:57
1

Eu enfrentei esse problema por causa da falta do comando install para criar esse diretório específico. Depois de adicionar o comando de instalação em %install , o rpm gerou com êxito

install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d
    
por 28.07.2015 / 17:50