Intereting Posts

Как установить из скрипта bash?

Я пытаюсь создать сценарий для настройки новой виртуальной машины, чтобы она была готова к использованию, что предполагает некоторые установки, но когда я помещаю команды установки ( apt-get --yes install ) в сценарий, они всегда терпят неудачу с:

 E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) 

Скрипт запускается от имени пользователя root ( sudo ./setup.sh ).

Когда я проверяю на apt процесса, я получаю:

 4 S root 2227 1 0 80 0 - 1126 - 07:33 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily update 0 S root 2231 2227 0 80 0 - 1126 - 07:33 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held update 

Дело в том, что это происходит только тогда, когда apts выполняются из скрипта, если я выполняю точно такие же команды вручную, у них никогда не возникает этой проблемы. Сценарий запуска apt устанавливает по-другому?

В любом случае, каков наилучший способ запустить apt (или yum в этом отношении) установщик из сценария оболочки таким образом, чтобы он не блокировался?

Он говорит вам (apt не может получить блокировку), что вам нужно запустить этот скрипт bash дальше, чтобы постинсталлировать или подождать, пока имена этих процессов не появятся. Вы можете иметь в виду об этом и убить процессы и удалить файл блокировки, затем обновить apt-get или просто подождать, пока они завершатся.

Вещи, которые могут привести к сбою – если вы запускаете apt-get install что-то как часть установки другого пакета (не делайте этого, просто используйте зависимости).