我正在編寫一個python腳本,它將在EC2機器上運行,如user-data-script。我試圖找出如何升級類似bash命令的機器上的軟件包:使用apt模塊更新python本身
$ 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腳本的額外步驟。
這可行,但我試圖減少我必須發送和/或寫出的腳本的數量,理想情況下只有一個Python腳本。 – vsekhar