Por algum motivo, o python não carrega a variável após o cache.commit()
. Se você definir novamente depois, ele retornará a resposta correta pkg.is_installed
.
#!/usr/bin/python
import apt.cache
pack1 = 'p7zip-full'
def cache_update():
cache = apt.cache.Cache()
cache.update()
pkg = cache[pack1]
print pkg.is_installed # prints false
if pkg.is_installed:
print "it is already installed. Invalid request! "
pkg.mark_delete()
else:
print "it is not installed.Now you are installing..."
pkg.mark_install()
cache.commit()
print "DONE."
cache = apt.cache.Cache()
pkg = cache[pack1]
print pkg.is_installed # prints true.
if __name__ == '__main__':
cache_update()