시스템에 따라 디렉토리가 달라지는 패키지에 파일을 포함하고 싶습니다.
나는 디렉토리를 정의한다
%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
.
답변2
%{completions_dir}
단순한 디렉토리라도 배치 함으로써
%files
%{completions_dir}
작업 완료(이 파일은 RPM에 포함되어 있습니다)