CentOS 용 RPM 스펙을 작성 중이며 아치가 64 비트이고 그렇지 않으면/usr/lib 인 경우/usr/lib64에 공유 라이브러리를 설치해야합니까?arch를 기반으로/usr/lib xor/usr/lib64에 라이브러리를 설치하는 rpm 스펙을 만드는 방법은 무엇입니까?
답변
그것이 작동하는 방식이 아닙니다. 라이브러리 유형을 결정하는 커널 유형은 아니지만 64 비트 .so는/usr/lib64로, 32 비트는/usr/lib로 이동합니다.
하나의 RPM에 두 아키텍처가 모두 포함될 수는 없으며 결과는 2 가지 RPM이어야하며 % _libdir을 사용하면 RPM 매크로가이를 해결해야합니다.
라이브러리가 설치되는 경로는 만들려는 패키지의 유형에 따라 결정됩니다.
나는 이런 일이 만들 수있는을 .spec 파일을 작성해야하고,을 .spec 파일에 나는 각 파일의 설치 위치를 추가해야합니다. 어떻게 지정해야합니까? –
표준 설치 위치에 대한 매크로가 있습니다. 일반 목록 : http://www.rpm.org/api/4.4.2.2/config_macros.html. 타겟 배포에 더 많은 정보가 추가 될 수 있습니다. – JadziaMD
Redhat (및 CentOS) 6의 경우 RPM 매크로가 이미 -libdir =/usr/lib64를 삽입 한 것처럼 보입니다.
이것은 RH/CentOS 6에서 RPM SPEC 파일을 통해 lib64를 설정하는 방법입니다.
RH/CentOS는 6 일, automake에/구성을 수행하는 라이브러리 접두어을 (하지 않으며, RH에 따라)하지 않습니다를/usr/lib64에 x86_64의 아치 형의 경우입니다.
이 모든 사항은 RH/CentOS 7 이상에서 수정되었습니다.
그런 식으로하면 분명해 보입니다 :) % _libdir yay! –
나는 centos 6에서 이것을하고 % {_ libdir}은/usr/lib로 해석한다. –