Я пишу скрипт на python, который будет работать на компьютере EC2 как user-data-script . Я пытаюсь выяснить, как я могу обновить пакеты на машине, аналогично команде 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 был одним из обновленных пакетов. Есть ли способ перезагрузить интерпретатор и скрипт после этого обновления и продолжить с того места, где он остановился?
Прямо сейчас мой единственный выбор - использовать сценарий оболочки в качестве сценария пользовательских данных с единственной целью обновления пакетов (включая, возможно, python), а затем перейти на python для остальной части моего кода. Я хотел бы исключить дополнительный шаг использования сценария оболочки.