私はuser-data-scriptとしてEC2マシン上で動作するpythonスクリプトを書いています。私はbashのコマンドに似マシン上でパッケージをアップグレードする方法を把握しようとしている:aptモジュールを使ってpython自体を更新してください
$ sudo apt-get -qqy update && sudo apt-get -qqy upgrade
私はこれを行うにはPythonでapt
パッケージを使用することができます知っている:
import apt
cache=apt.Cache()
cache.update()
cache.open(None)
cache.upgrade()
cache.commit()
問題は、Python自体がアップグレードされたパッケージの1つであった場合に起こります。このアップグレードに続いてインタプリタとスクリプトをリロードし、途中で中断しないところで続ける方法はありますか?
私の唯一の選択は、パッケージをアップグレードする(唯一のpythonを含む)唯一の目的のためにユーザーデータスクリプトとしてシェルスクリプトを使用し、残りのコードに対してPythonにドロップすることです。私は、シェルスクリプトを使用する余分な手順を排除したいと思います。
これはうまくいきますが、送信したり書き込んだりするスクリプトの数を減らすために、理想的には単一のPythonスクリプトにするのが理想的です。 – vsekhar