Как установить пакет с apt без запроса «Продолжить [Д / Н]?» подсказка?

Конечно, когда вы набираете:

sudo apt-get install whatever

Вас спрашивают:

Do you want to continue [Y/n]? 

Можно ли как-нибудь установить его, не спрашивая, хочу ли я продолжить? Меня не особо волнует пространство, у меня его более чем достаточно.

87
задан 22 September 2014 в 09:05

4 ответа

sudo apt-get install -y whatever

На странице руководства ( man apt-get ):

 -y, --yes, --assume-yes

           Automatic yes to prompts; assume "yes" as answer to all prompts and
           run non-interactively. If an undesirable situation, such as
           changing a held package, trying to install a unauthenticated
           package or removing an essential package occurs then apt-get will
           abort. Configuration Item: APT::Get::Assume-Yes.
123
ответ дан 22 November 2019 в 23:42

Для apt-get, -y или - предположим-да работают хорошо (как объяснил @rinzwind), и я полагаю, что это лучший ответ здесь. Для многих таких интерактивных административных операций есть аналогичная команда.

Другой довольно общий способ сделать это:

 $ echo "y" | sudo apt-get install edamame_biscuit

(где edamame-biscuit - это (придуманный) пакет, который вы хотите установить, а "y" предполагается правильным ответом;замените на «да» или другой текст по мере необходимости.)

«Особенностью» этого метода является то, что он не работает, если вы неправильно предполагаете только одно интерактивное приглашение. Если есть еще несколько потенциально нежелательных запросов, на которые вы, возможно, не захотите отвечать «да», вы избежите ситуации, когда система будет работать без запроса.

18
ответ дан 22 November 2019 в 23:42

Прежде всего, давайте разберемся , почему появляется сообщение. Фактически, если пакет не имеет зависимостей, которые вы еще не установили или которые вы явно указали для его установки, apt никогда не спросит вас:

➜  ~  sudo apt-get -qq install xfce4-screenshooter
Selecting previously unselected package xfce4-screenshooter.
(Reading database ... 296146 files and directories currently installed.)
Preparing to unpack .../xfce4-screenshooter_1.8.1-2_amd64.deb ...
Unpacking xfce4-screenshooter (1.8.1-2) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.56) ...
Setting up xfce4-screenshooter (1.8.1-2) ...

Хотя, если вы хотите установить пакет, который зависит от пакетов, которые вы не упомянули он спросит:

➜  ~  sudo apt-get -q install avis
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  libjzlib-java libmina-java libslf4j-java
Suggested packages:
  libmina-java-doc libspring-beans-java libcommons-logging-java
  liblog4j1.2-java
The following NEW packages will be installed:
  avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Need to get 720 kB of archives.
After this operation, 1,258 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

Что даже в этом случае, не спросит, если вы также неявно говорите, что хотите установить этот пакет:

➜  ~  apt-get -q install avis libjzlib-java libmina-java libslf4j-java
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
  libmina-java-doc libspring-beans-java libcommons-logging-java
  liblog4j1.2-java
The following NEW packages will be installed:
  avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Inst libjzlib-java (1.1.3-1 Debian:testing [all])
Inst libslf4j-java (1.7.7-1 Debian:testing [all])
Inst libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Inst avis (1.2.2-2 Debian:testing [all])
Conf libjzlib-java (1.1.3-1 Debian:testing [all])
Conf libslf4j-java (1.7.7-1 Debian:testing [all])
Conf libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Conf avis (1.2.2-2 Debian:testing [all])

Но тогда, как сделать так, чтобы он не спрашивал вас окончательно? Через Rizwind ответ должен охватывать специальные решения и сценарии (на самом деле, этот параметр больше используется в сценариях), вы можете вместо этого изменить свой файл apt.conf и добавить:

APT::Get::Assume-Yes

Что-то вроде этого должно быть достаточно :

echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask

Обратите внимание, это не позволит другие, более вопиющие запросы, вы должны проверить , например:

➜  ~  sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
  sonar
Install these packages without verification? [y/N] 

Вот почему я бы не рекомендовал использовать yes | ... , поскольку это предупреждение будет проигнорировано.

5
ответ дан 22 November 2019 в 23:42

Добавить - y в любую установку библиотеки

Например : sudo apt-get install -y nodejs

Например : sudo apt-get install -y postgres

Например : sudo apt-get install -y mongodb




Есть - force-yes также , и осторожно, не допускайте случайных пробелов. не поддерживается для последних дистрибутивов

1
ответ дан 22 November 2019 в 23:42

Другие вопросы по тегам:

Похожие вопросы: