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.

답변2

%{completions_dir}단순한 디렉토리라도 배치 함으로써

%files
%{completions_dir}

작업 완료(이 파일은 RPM에 포함되어 있습니다)

관련 정보