RPMマクロと引用

RPMマクロと引用

システムによってディレクトリが異なるパッケージにファイルを含めたいと思います。

私はディレクトリを定義します

%define completions_dir "%( pkg-config --variable=completionsdir bash-completion )"

たとえば、私はこれをうまく使うことができます

%install
make DESTDIR=${RPM_BUILD_ROOT}%{nagiospluginsdir} MANDIR=${RPM_BUILD_ROOT}%{_mandir} COMPLETIONDIR=${RPM_BUILD_ROOT}%{completions_dir} install

問題は、ファイルのリストを定義する必要があるときです。

ファイルがそこにあります。次の作品

%files
/usr/share/bash-completion/completions/check_ssl_cert

変数を使用する場合

%files
%{completions_dir}/check_ssl_cert

次のエラーが発生します。

RPM build errors:
    More than one file on a line: /check_ssl_cert

デバッグを試みました。

%files
/%{completions_dir}/check_ssl_cert
%endif

この場合、私は得る

    File not found: /root/rpmbuild/BUILDROOT/nagios-plugins-check_ssl_cert-2.20.0-0.fc35.x86_64/"/usr/share/bash-completion/completions"/check_ssl_cert

パスは正確ですが、引用符に問題があります。

マクロ定義パスを使用してファイルを含める方法は?

ベストアンサー1

引用符を削除します。

%define completions_dir %( pkg-config --variable=completionsdir bash-completion )

変える

%define completions_dir "%( pkg-config --variable=completionsdir bash-completion )"

参考として-を%global使用する必要があります%define

おすすめ記事