¿Cómo instalar un paquete con apt sin el mensaje "¿Desea continuar [S / n]?"

55

Por supuesto cuando escribes:

sudo apt-get install whatever

Te pregunta:

Do you want to continue [Y/n]? 

¿Hay alguna forma de instalarlo sin que me pregunte si deseo continuar? Realmente no me importa el espacio, tengo más que suficiente.

Luke
fuente
superusuario pregunta superuser.com/questions/164553/...
αғsнιη

Respuestas:

89
sudo apt-get install -y whatever

Desde la página del manual ( 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.
Rinzwind
fuente
99
(cómo vivir peligrosamente archivo)
usuario2413
¡Muchas gracias! Realmente debería usar esa página man más a menudo. :)
Luke
2
Es por eso que están allí @KingShimkus;)
Rinzwind
55
sudo apt-get install -yeah lo que sea ...
BoJack Horseman
Ahora, si solo esto funcionó para actualizar el paquete Docker>. <Si nunca ha actualizado Docker antes, aquí hay una imagen de lo que aparece en el terminal incluso cuando usa --yes: Imgur Es excepcionalmente molesto ya que fuerza la interacción durante la actualización del paquete .
Spencer D
15

Para apt-get, -yo --assume-yesfunciona bien (como explicó @rinzwind) y supongo que esa es la mejor respuesta aquí. Para muchas de estas operaciones administrativas interactivas, existe un comando similar.

Otra forma bastante genérica de hacer esto es algo como:

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

(Donde edamame-biscuit es el paquete (inventado) que desea instalar, y se supone que "y" es una respuesta legítima; sustitúyalo por "sí" u otro texto según sea necesario).

Una 'característica' de este método es que esto se romperá si está asumiendo incorrectamente solo una solicitud interactiva. Si hay otras indicaciones potencialmente no deseadas a las que quizás no desee decir que sí, evite la situación de que el sistema funcione sin preguntar.

belacqua
fuente
13
Además, yes | sudo apt-get install edamame-biscuit. Sí es un comando que envía la palabra "sí" a su salida. También puede hacer que muestre cualquier otro texto según sea necesario, consulte la página de manual.
Kroltan
14
@Kroltan El yescomando (por defecto) solo muestra la letra yseguida de una nueva línea tantas veces como sea necesario para llenar el buffer de la tubería. Para imprimir realmente la palabra yes, debe usar el comando yes yes.
Jonathan Callen
3
yes, perdón por mi error
Kroltan
44
@Braiam Creo que ese era el punto, por lo que no hace nada si alguien solo pega esto en su caparazón.
Kroltan
2
Particularmente me gusta la parte "Una 'característica' de este método es que esto se romperá si está asumiendo incorrectamente solo un mensaje interactivo". ya que enviar correos no deseados a todo puede ser muy peligroso.
BeowulfNode42
4

En primer lugar, entendamos por qué aparece el mensaje. De hecho, si el paquete no tiene dependencias que no haya instalado o que le haya dicho explícitamente que instale, apt nunca le preguntará:

➜  ~  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) ...

Mientras que si desea instalar un paquete que depende de paquetes que no mencionó, le preguntará:

➜  ~  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] 

Lo que aún así, no preguntaría si también dice implícitamente que desea instalar esos paquetes:

➜  ~  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])

Pero, entonces, ¿cómo hacer que no te pregunte definitivamente? A través de Rizwind, la respuesta debería cubrir soluciones ad-hoc y de secuencias de comandos (de hecho, esa opción se usa más en las secuencias de comandos), en su lugar, puede modificar su apt.confarchivo y agregar:

APT::Get::Assume-Yes

Algo como esto debería ser suficiente:

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

Tenga en cuenta que esto no permitirá otras indicaciones más atroces que debe verificar , como:

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

Es por eso que no recomendaría el uso de yes | ..., ya que esta advertencia sería ignorada.

Braiam
fuente
Para "ADVERTENCIA: ¡Los siguientes paquetes no se pueden autenticar!", ¿Qué se debe hacer al respecto? Obtengo esto para una imagen de Docker ( python:3.6-slim). ¿Debo hacer una pregunta por separado para eso?
Martin Thoma el
@MartinThoma generalmente, es un problema con la lista de paquetes no actualizada. Ejecute apt-get update antes de instalar. Si eso no elimina el mensaje, haga una pregunta con la mayor cantidad de detalles que pueda, hasta cómo creó la imagen acoplable.
Braiam el
0

Agregar -ya cualquier instalación de biblioteca

Por ejemplo :sudo apt-get install -y nodejs

Por ejemplo :sudo apt-get install -y postgres

Por ejemplo :sudo apt-get install -y mongodb




Hay --force-yes as well, y cuidado con los espacios accidentales. depreciado por distribuciones recientes

vijay
fuente