rpmパッケージでmapserverを生成するための.specファイルを生成しようとしています。私はRHEL6 64ビットサーバーを構築しています。
rpmファイルでは%{_libdir}
、 %{_bindir}
などのいくつかのディレクトリ参照を使用できます%{_libexecdir}
。これらのディレクトリパスはどこに設定されており、どのパスを使用できますか?
私のrpm仕様の%filesセクションは次のとおりです。
%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
しかし、ビルドを実行するとエラーが発生します。
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
不足しているファイルがインストールされているようです。
/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
正しいパスでファイルを見つけるには、rpm仕様をどのように変更する必要がありますか?
答え1
この問題は、64ビットライブラリをデフォルトの/usr/libディレクトリではなく/usr/lib64ディレクトリにインストールしようとしているRHELで発生します。
mapserver 6.2.1はautoconfを使用し、--libdirオプションを含みます。 .specファイルで./configureコマンドを変更します。%configure --libdir=$RPM_BUILD_ROOT%{_libdir}
答え2
この問題は特定のディレクトリを生成するインストールコマンドがないために発生しました。以下のインストールコマンドを追加すると正常に作成されました%install
。rpm
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d