--noconfirm
Обход любых сообщений «Вы уверены?». Это не очень хорошая идея, если вы не хотите запускать pacman из скрипта.
Обратите внимание на квалификацию использования этого с осторожностью ...
Arch - это релиз, который означает, что pacman время от времени должен управлять некоторыми довольно сложными обновлениями. В это время pacman предложит вам подтвердить свой выбор - игнорирование этих запросов, как правило, не будет существенной проблемой, но в некоторых случаях, как в случае с недавним переходом от /libк /usr/lib, отсутствие внимания может привести к серьезной поломке. Это не привычка, которую вы хотите развивать.
Из-за этого предупреждения я никогда не запускал pacman с «--noconfirm» за 3 года использования Arch. Сколько людей запускают pacman из сценария? Каковы большие риски? Мне приходилось вмешиваться 3 или 4 раза, чтобы исправить вещи, которые Пакман отказался обновить.
Брюс Эдигер
3
Я предполагаю, учитывая культуру Арча, что предупреждение должно препятствовать самоуспокоенности, и ошибочное представление о том, что автоматизация обновлений pacman - хорошая идея. Много поломки может быть подавлено , чтобы люди не читающих выхода pacman в; --noconfirmусугубит это ...
Джейсонвриан
1
У меня есть скрипт "install", который использует --noconfirm. Идея состоит в том, чтобы иметь возможность взять систему с недавно обновленной чистой установкой и сделать ее «пригодной для использования» без какого-либо взаимодействия с пользователем.
StrongBad
3
На самом деле, --noconfirmне предполагает yes, вместо этого он принимает ответ по умолчанию, что довольно часто no. Пример: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]В вышеприведенном случае yes|pacman -Sccпредполагаетсяyes
Утгарда
1
На самом деле, pacman --noconfirmтребуется, если вы используете Docker-контейнер, в противном случае он просто будет ждать ввода и, таким образом, завершит работу контейнера с ошибкой.
Амин НАИРИ
29
Хотя справочная страница по этому вопросу не очень ясна, --noconfirmфлаг не будет принимать «да» при каждом ответе. Предполагается ответ по умолчанию, который иногда может быть «нет».
--noconfirm
Обход любых сообщений «Вы уверены?». Это не очень хорошая идея
, если вы не хотите запускать pacman из скрипта
Чтобы принять «да», вы можете передать вывод yesкоманды pacman.
Используйте yes | LC_ALL=en_US.UTF-8 pacman [...]для совместимости с системами, язык которых не установлен на английский. В противном случае [Y/n]вопросы становятся [J/n], например.
ComFreek
3
Также остерегайтесь того, что этот ответ не получится, если Пакман когда-либо задает вопрос без yответа, например Enter a selection (default=all).
ComFreek
@ComFreek, вместо того, чтобы изменять передаваемые переменные окружения pacman, было бы проще, и, вероятно, yes J | sudo pacman -S firefoxв этом случае безопаснее всего это сделать . yes Jприведет yesк повторному выводу Jвместо а y.
Дрю Чапин
"и, вероятно, безопаснее" Как это так? Переопределение выше влияет только на среду порожденного процесса (дерева) и заканчивается им. Кроме того, приведенный выше вызов абсолютно одинаков для всех локалей.
Кельвин
Кроме того, что, если кто-то скопирует / вставит одну такую командную строку, но имеет локаль, в которой один из параметров имеет противоположное или совершенно другое значение? Пример: J(или Y) значение «нет» или «все».
--noconfirm
усугубит это ...--noconfirm
не предполагаетyes
, вместо этого он принимает ответ по умолчанию, что довольно частоno
. Пример:# pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]
В вышеприведенном случаеyes|pacman -Scc
предполагаетсяyes
pacman --noconfirm
требуется, если вы используете Docker-контейнер, в противном случае он просто будет ждать ввода и, таким образом, завершит работу контейнера с ошибкой.Хотя справочная страница по этому вопросу не очень ясна,
--noconfirm
флаг не будет принимать «да» при каждом ответе. Предполагается ответ по умолчанию, который иногда может быть «нет».Чтобы принять «да», вы можете передать вывод
yes
командыpacman
.источник
yes | LC_ALL=en_US.UTF-8 pacman [...]
для совместимости с системами, язык которых не установлен на английский. В противном случае[Y/n]
вопросы становятся[J/n]
, например.y
ответа, напримерEnter a selection (default=all)
.pacman
, было бы проще, и, вероятно,yes J | sudo pacman -S firefox
в этом случае безопаснее всего это сделать .yes J
приведетyes
к повторному выводуJ
вместо аy
.J
(илиY
) значение «нет» или «все».