"dpkg --compare-versions ..."에 해당하는 RPM은 무엇입니까?

"dpkg --compare-versions ..."에 해당하는 RPM은 무엇입니까?

데비안은 다음과 같은 명령을 사용하여 데비안 호환 버전을 비교하는 방법을 제공합니다 dpkg:

dpkg --compare-versions <version> <operator> <version>

예를 들어 특정 버전이 1.0 이전인지 알고 싶다면 다음을 사용할 수 있습니다.

# gather VERSION from somewhere...
VERSION=0.9

if dpkg --compare-versions "${VERSION}" lt 1.0
then
    echo "unacceptable version as per policy"
    exit 1
fi

RPM 기반(RedHat/Fedora) 시스템에서 해당 명령은 무엇입니까?

답변1

존재하다속도>= 4.16.0:

$ rpm --eval "%{lua:print(rpm.vercmp('1.2-1', '2.0-1'))}"
-1

(rpm >= 4.7.0 부품만 비교, 불완전한 Epoch:Version-Release 문자열)

OpenSUSE의 경우 다음도 있습니다 zypper vcmp.

$ zypper vcmp 0.9.5+git20190908+3abfab2-150300.7.5.1 0.9.5~git20210406.e554475-150400.3.5.1
0.9.5+git20190908+3abfab2-150300.7.5.1 is newer than 0.9.5~git20210406.e554475-150400.3.5.1

답변2

rpmdev-vercmpfrom rpmdevtools패키지는 유사한 기능을 제공하지만 지정된 연산자를 지원하지 않습니다. 버전이 같으면 0을 반환하고, 버전1이 최신이면 11을, 버전2가 최신이면 12를 반환합니다.

$ rpmdev-vercmp 1.12 1.13
1.12 < 1.13
$ echo $?
12

Fedora에 dpkg를 설치할 수도 있습니다.기본 저장소에서 사용 가능. 하지만 단지 버전 비교를 위해 dpkg를 설치하는 것은 다소 무리일 수 있습니다.

관련 정보