반응형
부제: 1.0.1-2 와 1.0.1-10, 뭐가 더 최신인가
rpmdev-vercmp 1.0 2.0 # EVR 두 개 비교
rpmdev-vercmp 1.0.1-2 1.0.1-10 # 릴리스까지 비교
echo $? # 11=앞이 최신, 12=뒤가 최신, 0=동일
$ rpmdev-vercmp 1.0 2.0
1.0 < 2.0
$ rpmdev-vercmp 1.0.1-2 1.0.1-10
1.0.1-2 < 1.0.1-10
$ rpmdev-vercmp --help
Exit status is 0 if the EVR's are equal, 11 if EVR1 is newer, and 12 if EVR2
is newer.rpmdev-vercmp는 rpm의 버전 비교 규칙(epoch:version-release)을 그대로 적용해 두 버전의 우열을 가려준다. 문자열 정렬로는 2가 10보다 커 보이는 함정을, rpm 규칙은 숫자 필드로 제대로 비교한다. 결과는 화면 출력과 종료 코드로 나오므로 스크립트 조건에 바로 쓸 수 있다.
이렇게도 쓴다
epoch·version·release를 각각 인자로 나눠 비교한다.
rpmdev-vercmp 0 1.0 1 0 1.0 2
종료 코드로 분기해 조건 처리한다.
rpmdev-vercmp 2.12-1 2.12-2; [ $? -eq 12 ] && echo "뒤가 최신"
설치된 버전과 후보 버전을 비교한다.
rpmdev-vercmp $(rpm -q --qf '%{version}-%{release}' hello) 2.12-3
인자 없이 실행해 대화식으로 입력한다.
rpmdev-vercmp
두 spec이 만들 NVR을 뽑아 서로 비교한다.
rpmdev-vercmp $(rpmspec -q --srpm --qf '%{version}-%{release}' a.spec) $(rpmspec -q --srpm --qf '%{version}-%{release}' b.spec)반응형
'명령어 > Linux' 카테고리의 다른 글
| [RHEL] rpmlint spec과 rpm 패키지 규칙 검사 (0) | 2026.07.16 |
|---|---|
| [RHEL] spectool spec의 소스·패치 나열하고 내려받기 (0) | 2026.07.16 |
| [RHEL] rpmdev-bumpspec spec 버전 올리고 changelog 추가 (0) | 2026.07.16 |
| [RHEL] rpmdev-newspec spec 파일 뼈대 생성 (0) | 2026.07.16 |
| [RHEL] rpmdev-setuptree 홈에 rpmbuild 작업 트리 생성 (0) | 2026.07.16 |