명령어/Linux

[RHEL] rpmbuild spec 파일로 RPM 패키지 빌드

jykim23 2026. 7. 16. 13:10
반응형

부제: spec 하나로 소스에서 rpm까지 찍어낸다

rpmbuild -ba hello.spec   # 소스+바이너리 패키지 둘 다 빌드
rpmbuild -bb hello.spec   # 바이너리 rpm만
rpmbuild -bs hello.spec   # 소스 srpm만
      -bp                        build through %prep (unpack sources and apply
      -bc                        build through %build (%prep, then compile)
      -bi                        build through %install (%prep, %build, then
      -bl                        verify %files section from <specfile>
      -ba                        build source and binary packages from
      -bb                        build binary package only from <specfile>
      -bs                        build source package only from <specfile>

rpmbuild는 spec 파일과 소스 타르볼을 받아 .rpm을 만드는 RHEL 계열의 패키징 도구다. 데비안의 dpkg-buildpackage에 대응한다. -b 뒤 한 글자로 어디까지 진행할지 정한다. p는 압축 해제(prep), c는 컴파일(build), i는 설치(install), a는 소스와 바이너리 전부다.

이렇게도 쓴다

빌드 없이 spec 문법과 소스 존재만 검사한다.

rpmbuild --nobuild hello.spec

 

srpm을 받아 그대로 재빌드한다.

rpmbuild --rebuild hello-2.12-1.el9.src.rpm

 

%prep까지만 돌려 소스가 제대로 풀리는지 본다.

rpmbuild -bp hello.spec

 

빌드 트리를 만들고, spec을 뽑고, 바로 빌드까지 한 흐름으로 잇는다.

rpmdev-setuptree && rpmdev-newspec ~/rpmbuild/SPECS/hello && rpmbuild -ba ~/rpmbuild/SPECS/hello.spec

 

토큰 정의를 넘겨 릴리스 번호를 바꿔 빌드한다.

rpmbuild -ba --define 'dist .el9' hello.spec
반응형