필자는 python-apt와 python-debian을 살펴 보았지만 패키지 버전을 비교할 수있는 기능이없는 것으로 보입니다. 나 자신을 써야합니까, 아니면 제가 사용할 수있는 것이 있습니까? 당신은 apt_pkg.version_compare 사용할 수데비안 패키지 버전 비교 방법
>>> v1 = apt.version("1:1.3.10-0.3")
>>> v2 = apt.version("1.3.4-1")
>>> v1 > v2
True
필자는 python-apt와 python-debian을 살펴 보았지만 패키지 버전을 비교할 수있는 기능이없는 것으로 보입니다. 나 자신을 써야합니까, 아니면 제가 사용할 수있는 것이 있습니까? 당신은 apt_pkg.version_compare 사용할 수데비안 패키지 버전 비교 방법
>>> v1 = apt.version("1:1.3.10-0.3")
>>> v2 = apt.version("1.3.4-1")
>>> v1 > v2
True
:
import apt_pkg
apt_pkg.init_system()
a = '1:1.3.10-0.3'
b = '1.3.4-1'
vc = apt_pkg.version_compare(a,b)
if vc > 0:
print('version a > version b')
elif vc == 0:
print('version a == version b')
elif vc < 0:
print('version a < version b')
이 코멘트에 지적에 대해 Tshepang에
version a > version b
감사를 산출
이상적으로는 같을 것 그최신 버전의 경우: apt.VersionCompare
은 이제 apt_pkg.version_compare
입니다.
아마도 제목에 파이썬 (태그가 있지만)을 언급하지 않았기 때문에 Google은 같은 질문을하지만 bash 응답을 원할 때 나를 데려왔다.
$ dpkg --compare-versions 11a lt 100a && echo true
true
$ dpkg --compare-versions 11a gt 100a && echo true
$
레니에 오류를 제공하지 않는 방법으로 레니 - 백 포트의 버전으로 적어도 새 등의 젬의 버전을 설치 및 설치 짜려면 :
sudo apt-get install rubygems &&
VERSION=`dpkg-query --show --showformat '${Version}' rubygems` &&
dpkg --compare-versions $VERSION lt 1.3.4-1~bpo50+1 &&
sudo apt-get install -t lenny-backports rubygems
을 그 것 같다 아마 나는 덜 복잡한 대답을 얻기 위해 별도의 질문으로 그것을 어떻게해야하는지 물어야 만했을 것이다.
포장 업체가 다른 장소에 포장을 설치했을 것 같습니다. 나는 그것을 발견했다. (http://apt.alioth.debian.org/python-apt-doc/library/apt_pkg.html#apt_pkg.version_compare). 그리고 그것은 제가 또한 지느러미 같은 장소에 관한 것입니다. 또한 Python의 오래된 버전을 가지고 있다고 생각합니다. 왜냐하면 그들은 CamelCase에서 멀어지고 있기 때문입니다. 그래서 그것이 문서화되지 않은 이유입니다. – Tshepang
@Tshepang : 실제로, 파이썬 - 아파트는 꽤 오래되었습니다. 업데이트 주셔서 감사합니다 – unutbu
사실, 코드는 정상적으로 작동합니다. 개발자는 새로운 메소드 이름에 대한 일종의 별칭으로 유지할만큼 신중했습니다. – Tshepang