Я прочитал ответы в этом сообщении, но это, кажется, не работает на мою проблему.
Я выполняю сценарий удара через stdin от wget:
wget -O - http://serverip/subfolder/script | sudo bash
Я попытался использовать apt-get -y --force-yes install <packages..> || true
, но это все еще выходит из сценария, если тот перечисленного установлен Кв. - добираются.
Это не выходит из сценария, если все перечисленные пакеты уже установлены.
То же самое происходит, если у меня есть a apt-get upgrade
и это устанавливает пакет (пакеты). Это выйдет из сценария.
У меня есть другой набор сценариев, который, кажется, работает. В том сценарии сценарий установки является просто тупиком, который загружает, запускает скрипт через bash <scriptname>
затем удаляет сценарий. Сам сценарий поднимет свое полномочие самим sudoing. apt-get
работы как ожидалось здесь.
Любое понимание относительно того, как предотвратить apt-get
от завершения сценария ценился бы.
Я желаю, чтобы люди прекратили бы делать: wget | bash
. Это просто глупо, и имеет непреднамеренные эффекты как тот здесь. У Вас есть удар, поэтому используйте его функции. В частности, замена процесса:
bash <(wget -O - http://serverip/subfolder/script)
Вероятно, просто необходимо остановиться apt-get
от жадного чтения стандартного входа. Сделайте это путем перенаправления stdin к /dev/null
, файл, который возвращает eof чтениям. Например:
apt-get -y --force-yes install ... </dev/null