명령어/Linux

[RHEL] rpmspec spec 파일 파싱하고 질의

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

부제: 빌드하지 않고 spec이 뭘 만들지 미리 본다

rpmspec -q hello.spec              # 이 spec이 만들 패키지 이름들
rpmspec -q --srpm hello.spec       # 소스 패키지 기준 이름
rpmspec -P hello.spec              # 매크로 펼친 spec 출력
$ rpmspec -q hello.spec
hello-2.12-1.el9.x86_64
hello-debuginfo-2.12-1.el9.x86_64
hello-debugsource-2.12-1.el9.x86_64

rpmspec는 spec 파일을 읽어 매크로를 펼치고 질의하는 도구다. 실제 빌드는 하지 않는다. %{version}, %{dist} 같은 매크로가 어떻게 풀리는지, 하위 패키지가 몇 개 나오는지 빌드 전에 확인할 때 쓴다. -q는 질의, -P는 파싱된 전체 spec을 출력한다.

이렇게도 쓴다

빌드에 필요한 패키지 목록만 뽑는다.

rpmspec -q --buildrequires hello.spec

 

출력 형식을 지정해 NVR 문자열만 얻는다.

rpmspec -q --srpm --qf '%{name}-%{version}-%{release}\n' hello.spec

 

매크로를 즉석에서 재정의해 결과가 어떻게 바뀌는지 본다.

rpmspec -P --define 'dist .el8' hello.spec

 

buildrequires를 뽑아 그대로 설치 명령에 넘긴다.

sudo dnf install $(rpmspec -q --buildrequires hello.spec)

 

여러 spec의 최종 패키지 이름을 한 번에 확인한다.

for s in *.spec; do rpmspec -q "$s"; done
반응형