Intereting Posts
Общий объем использования памяти одним процессом Может ли Linux PC служить сетевым маршрутизатором? У меня есть три монитора, два из них зеркально отражают друг друга, а последний пуст Unix / Linux – Заменить слова между круглыми скобками извлечение строк текста из длинного файла Объединить столбцы в файле 1 с столбцами в файле 2 – должно быть простым – но что-то странное происходит Что происходит с Google Chrome и удаленными файлами В чем разница между «откатом истории dnf» и «отменой истории dnf»? Почему моя команда ‘rm’ отлично работает в терминале на моем Mac, а не из сценария оболочки? Печать строки после или до регулярного выражения в Bash Предотвращение создания определенного каталога Plain vi (not vim): не удается удалить строку в режиме вставки: требуется ли это поведение POSIX? Блокировать файл от редактирования или удаления Как найти строку из нескольких CSV-файлов Тонкий WM в полном плавающем стиле

Как установить из скрипта 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 что-то как часть установки другого пакета (не делайте этого, просто используйте зависимости).