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.
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.
Respuestas:
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.
Para apt-get, -y
o --assume-yes
funciona 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.
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.
yes
comando (por defecto) solo muestra la letra y
seguida 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
.
yes
, perdón por mi error
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.conf
archivo 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.
python:3.6-slim
). ¿Debo hacer una pregunta por separado para eso?
-y
a cualquier instalación de bibliotecaPor 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