2012-03-04 1 views
0

rpmbuild으로 RPM 패키지 빌드를 자동화하고 있습니다. 파일은 RPMS 아래의 architecture 서브 디렉토리에서 끝납니다.RPM의 현재 아키텍처 검색

질문 - RPM이 사용하는 호스트의 아키텍처 이름을 쉘 스크립트에서 어떻게 검색합니까? arch 명령과 같지 않습니다.

답변

1

알려진 OS 레벨 아키텍처 이름을 표준 RPM 아키텍처 이름으로 변환하는 /usr/lib/rpm/rpmrc이 있습니다. 다음 쉘 스크립트는 나를위한 작업을 수행합니다 :

ARCH=`arch` 
# OS-level architecture name, like 'i686' 

ARCH=`cat /usr/lib/rpm/rpmrc | grep "buildarchtranslate: $ARCH" | cut -c21-` 
# returns the translate line as "arch-from: arch-to" 

ARCH=${ARCH/#*: /} 
# strips the prefix up to colon and following space, returns arch-to. 
# Assumes just one space after colon. If not, more regex magic is needed. 
0

잘못하고 있습니다. % _build_name_fmt를 ~/.rpmmacros에 다시 정의하십시오.

+0

아키텍처 또한 생성 된 파일 이름의 일부로, 규칙 상으로 이루어집니다. 나는 그것을 그렇게 원한다. 따라서 파일 이름 형식을 변경하는 것보다는 아키텍처를 검색하는 것이 좋습니다. –