RPM의 마법은 패키지 빌드에 대한 모든 지침은 단일 SPEC 파일에 포함되어 있습니다.. 물론 먼저 그것을 이해해야하며 때로는 쉽지 않습니다 ... |
SPEC 파일이란 무엇입니까?
기본적으로 패키지를 빌드, 설치 및 제거하는 방법을 나타내는 파일입니다.
우리가 제공 할 지침은 그 자체가 매크로 인 단계로 나뉩니다. 다음은 기본 단계입니다.
- % 준비: 소스의 압축이 풀리고 패치가 적용됩니다.
- % 짓다: 바이너리가 컴파일됩니다.
- % 확인: 올바르게 컴파일되었는지 확인합니다.
- % 설치: 설치 드릴이 수행됩니다.
- % 파일: 패키지에 나타날 모든 파일을 나열합니다. 속성을 할당하는데도 자주 사용됩니다. 나열되지 않은 파일이 있으면 빌드되지 않습니다.
일부 SPEC에는 일부 단계가 없을 수 있습니다. 필수가 아닙니다..
호출되는 다른 단계가 있습니다. 스크립틀릿. 패키지가 빌드 될 때 실행되지 않고 설치 또는 제거 될 때 실행되기 때문에 특별합니다. 다른 패키지가 설치 될 때 실행되도록 트리거를 예약 할 수도 있습니다.. 이것은 RPM이 DEB 파일에 비해 갖는 큰 장점 중 하나입니다.
RPM의 큰 혼란은 모든 것에 대해 동일한 구문이 있습니다.. 즉,이 모든 특수 단어 앞에 퍼센트 기호 (%)는 RPM 매크로이지만 모든 종류의 매크로가 있습니다.
- 기능 (% setup, % configure, % patch…)
- 미리 정의 된 변수 (% _bindir, % dist…)
- SPEC 자체에 정의 된 변수 (% buildroot, % 이름, % 버전 ...)
- 정적 섹션 (설명 %, 변경 로그 %…)
- 단계 (% 빌드, % 설치…)
- 트리거 (% triggerin, % triggerpostun…)
- 스크립틀릿 (% pretrans, % postun…)
특정 매크로가 어떻게 사용되는지 알기위한 유일한 방법은 문서를 참조하십시오. 사실 당신은 항상 다음과 같은 다른 트릭을 사용할 수 있습니다. SPEC이 당신과 비슷한 패키지로 어떻게 만들어 졌는지보세요, 또는 시행 착오 방법. 한쌍 실용적인 명령:
rpmbuild --showrc # 모든 매크로보기
rpmbuild --eval = "% macro_name"# 확장 된 매크로 표시
매크로 주변에 대괄호가 있으면 동일합니다. 괄호 뒤에 물음표가 있으면 확장 할 내용이 없으면 공백으로 표시됩니다. 예를 들면 1 % {? Dist} 확장됩니다 1. FC16 Fedora 16에서는 있지만 다른 배포판에서는 다음과 같이 유지됩니다. 1.
식욕을 돋우다
우리는 이미이 튜토리얼의 두 번째 편에 있으며 우리가 무엇을 포장 할 것인지 아직 모르기 때문에 입을 벌리는 비디오는 다음과 같습니다.