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 aptrobi?
import aptinteraktywny monit przed importemapt_pkg? To by wyjaśniało rzeczy, ponieważ to inicjalizuje również moduł.