다음 명령을 사용하여 소프트웨어용 패키지를 생성하고 있습니다 MPICH
. 바이너리는 다음 위치에 설치되어야 합니다.mpich 디렉토리. 이 디렉토리는 mpich 버전에 따라 /usr/lib64/mpich-3.2/
다릅니다 /usr/lib64/mpich/
. 이번 섹션에서는 %install
변수 MPI_BIN
와 매크로 설정을 통해 MPI_LIB
관리했습니다 . 그러나 이러한 변수는 이 섹션에서 확장되지 않습니다 %files
.
바이너리 섹션 %files
에 바이너리를 어떻게 나열할 수 있나요? 나는 기사를 읽었다오래된 게시물그러나 솔루션이 작동하지 않습니다.
답변1
%files
필요한 변수가 있으면 설치 중에 생성된 파일에서 파일 이름 목록을 읽을 수 있습니다. 예를 들어
%install
echo /$MPI_BIN/somefile >>myfilelist
그런 다음 사용
%files -f myfilelist
답변2
변수는 $MPI_LIB
섹션 내에서만 범위를 가집니다 %install
. 매크로를 사용해 볼 수 있습니다.
%install
MPI_LIB=some_value
%global mpi_lib $MPI_LIB
%files
/usr/lib64/%{mpi_lib}
그러나 이는 매크로 정의가 사양 파일 구문 분석 시작 시 평가되기 때문에 실패합니다. 따라서 %install
부품을 실행하기 전에도 마찬가지입니다 .
나는 이것을 사용할 것입니다 :
%global mpi_lib %(echo -n "mpich3")
%files
/usr/lib64/%{mpi_lib}
이 구성은 %( )
콘텐츠를 쉘 스크립트로 실행하고 출력을 매크로 값으로 사용합니다.