amazon ec2 - Update python itself using the apt module -
i writing python script run on ec2 machine user-data-script. i'm trying figure out how can upgrade packages on machine similar bash command:
$ sudo apt-get -qqy update && sudo apt-get -qqy upgrade
i know can use apt
package in python this:
import apt cache=apt.cache() cache.update() cache.open(none) cache.upgrade() cache.commit()
problem happens if python 1 of packages upgraded. there way reload interpreter , script following upgrade , continue left off?
right choice use shell script user-data script sole purpose of upgrading packages (including possibly python) , dropping python rest of code. i'd eliminate step of using shell script.
i think figured out:
def main(): import argparse parser = argparse.argumentparser(description='user-data-script.py: initial python instance startup script') parser.add_argument('--skip-update', default=false, action='store_true', help='skip apt package updates') # parser.add_argument whatever else need args = parser.parse_args() if not args.skip_update: # update import apt cache = apt.cache() cache.update() cache.open(none) cache.upgrade() cache.commit() # restart, , skip update import os, sys command = sys.argv[0] args = sys.argv if skipupdate: args += ['--skip-update'] os.execv(command, args) else: # run usual code pass if __name__ == '__main__': main()
Comments
Post a Comment