데비안은 다음과 같은 명령을 사용하여 데비안 호환 버전을 비교하는 방법을 제공합니다 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-vercmp
from rpmdevtools
패키지는 유사한 기능을 제공하지만 지정된 연산자를 지원하지 않습니다. 버전이 같으면 0을 반환하고, 버전1이 최신이면 11을, 버전2가 최신이면 12를 반환합니다.
$ rpmdev-vercmp 1.12 1.13
1.12 < 1.13
$ echo $?
12
Fedora에 dpkg를 설치할 수도 있습니다.기본 저장소에서 사용 가능. 하지만 단지 버전 비교를 위해 dpkg를 설치하는 것은 다소 무리일 수 있습니다.