我正在编写一个 python 脚本,它将作为user-data-script在 EC2 机器上运行。我试图弄清楚如何升级机器上的软件包,类似于 bash 命令:
$ sudo apt-get -qqy update && sudo apt-get -qqy upgrade
我知道我可以使用apt
python 中的包来执行此操作:
import apt
cache=apt.Cache()
cache.update()
cache.open(None)
cache.upgrade()
cache.commit()
问题是如果 python 本身是升级的软件包之一会发生什么。有没有办法在此升级后重新加载解释器和脚本并从中断的地方继续?
现在我唯一的选择是使用 shell 脚本作为我的用户数据脚本,其唯一目的是升级包(可能包括 python),然后将其余代码放入 python 中。我想消除使用 shell 脚本的额外步骤。