По сути, я ищу полностью тихую, неинтерактивную версию
freebsd-update fetch
freebsd-update install
и
portsnap fetch update
В FreeBSD-10.2 есть новая опция, позволяющая это сделать:
freebsd-update fetch --not-running-from-cron
--not-running-from-cron
Force freebsd-update fetch to proceed when there is no
controlling tty. This is for use by automated scripts and
orchestration tools. Please do not run freebsd-update
fetch from crontab or similar using this flag, see:
freebsd-update cron
В FreeBSD 10.0R и новее установите переменную среды PAGER в freebsd-update.
env PAGER=cat freebsd-update fetch
freebsd-update install
Для portnap (8) во FreeBSD 10.0R и новее поведение по умолчанию, а именно без --interactive
вариант, не интерактивный.
portsnap fetch update
Для FreeBSD <10 работает следующее:
Позволять freebsd-update
запустить выборку без stdin
прикреплен к терминалу:
sed 's/\[ ! -t 0 \]/false/' /usr/sbin/freebsd-update > /tmp/freebsd-update
chmod +x /tmp/freebsd-update
Позволять portsnap
запустить выборку без stdin
прикреплен к терминалу:
sed 's/\[ ! -t 0 \]/false/' /usr/sbin/portsnap > /tmp/portsnap
chmod +x /tmp/portsnap
Кредиты: ви
Для FreeBSD 10+ предпочтительнее решение из ответа @uchida ниже!
Слепая установка обновлений (даже freebsd-update
обновления) может быть плохой вещью: один вариант в rc.conf
изменяется, и внезапно на вашем компьютере больше нет демона SSH.
Точно так же вы, вероятно, не захотите слепо устанавливать все доступные обновления порта через portsnap
/ portupgrade -a
- вы можете сделать резкий скачок основного номера версии и сломать вселенную, или у вас может быть просто порт с новыми параметрами конфигурации, который необходимость (вы можете заставить порты просто принимать любые значения по умолчанию, но иногда это не то, что вам нужно).
В Лучший способ сделать это - использовать инструмент управления конфигурацией, например Кукольный или радость для развертывания ваших изменений.
Создайте шаблон компьютера на основе блока, который вы успешно обновили и протестировали, а затем разверните его в остальной среде. Это гарантирует, что вы продвигаете рабочую конфигурацию системы и что вам нужно выполнить ручные шаги только один раз (на машине, с которой вы создаете шаблон).
Для FreeBSD версии> 11
freebsd-update - это скрипт, в котором есть «Функция для запроса пользователя, все ли в порядке». Функция:
continuep ()
В этой функции достаточно прокомментировать все, кроме строки с
возврат 0
После этого функция возвращает положительный ответ на вопрос «да / нет».
Важный! Помните, что это НЕ рекомендуется и делайте это только на свой СОБСТВЕННЫЙ риск!
# /tmp/freebsd-update -r 11.1-RELEASE upgrade ; while [ $? -eq 1 ] ; do sleep 3; /tmp/freebsd-update -r 11.1-RELEASE upgrade ; done