Napisałem skrypt bash, który musi porównać dwa ciągi wersji, aby zdecydować się na pobranie nowej wersji lub nie. Test opiera się na skrypcie w Pythonie, który działa tak samo apt.VersionCompare()
, jak w przypadku porównania wersji apt
.
#!/usr/bin/env python
import sys, apt
res = apt.VersionCompare(sys.argv[1], sys.argv[2])
if res < 0:
sys.exit(-1)
if res > 0:
sys.exit(1)
sys.exit(0)
Po aktualizacji do Ubuntu 14.4 przestało to działać.
Próbowałem zmienić skrypt zgodnie z /programming/4957514/ jak poniżej:
#!/usr/bin/env python
import sys, apt_pkg
res = apt_pkg.version_compare(sys.argv[1], sys.argv[2])
if res < 0:
sys.exit(-1)
if res > 0:
sys.exit(1)
sys.exit(0)
ale to mi daje ValueError: _system not initialized
. Jak rozwiązać, czy jest lepszy sposób na porównanie wersji takich jak apt
robi?
import apt
interaktywny monit przed importemapt_pkg
? To by wyjaśniało rzeczy, ponieważ to inicjalizuje również moduł.