Ho scritto uno script bash che deve confrontare due stringhe di versione per decidere di scaricare una nuova versione o meno. Il test si basa su uno script Python che lo fa apt.VersionCompare()
, che fa il confronto delle versioni nel modo in cui lo apt
fa.
#!/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 l'aggiornamento a Ubuntu 14.4 questo ha smesso di funzionare.
Ho provato a cambiare lo script seguendo /programming/4957514/ come di seguito:
#!/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)
ma questo mi dà ValueError: _system not initialized
. Come risolvere o c'è un modo migliore per confrontare le versioni come apt
fa?
import apt
prompt interattivo prima dell'importazioneapt_pkg
? Ciò spiegherebbe le cose, poiché inizializza anche il modulo.