Escribí un script bash que tiene que comparar dos cadenas de versión para decidir descargar una nueva versión o no. La prueba se basa en un script de Python que sí apt.VersionCompare()
lo hace, que hace la comparación de versiones de la misma manera 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)
Con la actualización a Ubuntu 14.4, esto dejó de funcionar.
Traté de cambiar el script siguiendo /programming/4957514/ como se muestra a continuación:
#!/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)
Pero esto me da ValueError: _system not initialized
. ¿Cómo resolver, o hay una mejor manera de comparar versiones como apt
hace?
import apt
mensaje interactivo antes de importarapt_pkg
? Eso explicaría las cosas, ya que eso también inicializa el módulo.