Responda automáticamente 'Sí' cuando use apt-get install


356

¿Hay alguna forma de apt-get installresponder "sí" a "¿Desea continuar [s / N]?"

Respuestas:



175

El problema con:

apt-get --yes install $something

es que solicitará una confirmación manual si la clave pública del propietario de la firma del paquete no está en el llavero o en otras condiciones. para asegurarse de que no pida confirmación, solo haga esto:

apt-get --yes --force-yes install $something

Si desea que esta configuración sea permanente, cree un archivo en /etc/apt/apt.conf.d/, como /etc/apt/apt.conf.d/90forceyes con el siguiente contenido:

APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";

3
+1 por variedad. Todos se -yestaban volviendo aburridos. (Además, es una respuesta más completa.)
Dennis Williamson

1
¿Funcionará esto cuando diga "Para continuar, escriba la frase 'Sí, haga lo que le digo!" Si no, ¿cuál es la solución entonces? Me encuentro con esto cuando intento reemplazar sysvinit con systemd en mi imagen debian chrooteada.
Lennart Rolland

13
No utilice nunca --force-yes: como sugiere esta respuesta a un hilo relacionadodebian-devel , --force-yespodría inutilizar el sistema. (No estoy downvoting porque la respuesta en realidad aborda el problema según lo declarado por el PO, pero me gustaría añadir una advertencia de color rojo GRANDE a la respuesta de todos modos.)
kostix

77
APT :: Obtener :: Asumir-Sí "verdadero"; Me ayudó a evitar la interrupción en una instalación en un contenedor acoplable.
Mehdi Sadeghi

3
force-yes ha quedado en desuso. tracker.mender.io/browse/CFE-2360
rrawat

53

Tenga en cuenta que si también desea ir automáticamente por las respuestas predeterminadas cuando aparece un mensaje interactivo, puede usar DEBIAN_FRONTEND=noninteractive

Instalación individual:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]

P.ej:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix

Todas las actualizaciones:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y update 

Puede configurar opciones más finas con -o Dpkg::Options::="--force-confdef"y -o Dpkg::Options::="--force-confold".

Ejemplos:

apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

o

apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

Ejemplo de solicitud interactiva:

ingrese la descripción de la imagen aquí

Lectura interesante: realice una instalación desatendida de un paquete Debian


1
Gran respuesta. Incluso con -yeso, todavía recibí mensajes que me preguntaban si quería reiniciar los servicios. Necesitaba esto para eliminar por completo todas las indicaciones.
wisbucky

14
APT::Get::Assume-Yes "true";

APT::Get::force-yes "true";

Esto al menos debería estar /etc/apt/apt.confy comentado. Me preocupa que Ubuntu esté tomando la táctica de Microsoft de pedir siempre permiso.

"¿Estás seguro?", Por supuesto que estoy seguro, no soy un mono entrenado simplemente escribiendo en el teclado, haciendo clic feliz.

Luego la puerta preguntará: "¿Estás seguro de que quieres salir?"
El horno preguntará: "¿Estás seguro de que quieres cocinar?"
El automóvil preguntará: "¿Está seguro de que desea aplicar los frenos?"
El extintor le preguntará: "¿Está seguro de querer apagar el fuego?"
Lo siento Dave, no puedo dejarte hacer eso.
HAL9000 podría usar una contracción, pero los Datos no pudieron o no pudieron.


3
La diferencia con HAL9000 y dpkg pidiendo permiso es que HAL dijo "no, punto", mientras que la cosa "Sí, haz lo que digo" solo aparece si estás a punto de romper por completo y completamente tu sistema. Si eso es lo que quieres, seguro, adelante. Pero tener una advertencia en ese caso parece razonable.
Wouter Verhelst


7
apt-get -y update
apt-get -y install [package]

2
+1, pero ¿por qué updatenecesita permiso?
amyassin

@amyassin, el apt-get updatecomando requiere permisos de root porque actualiza las listas de paquetes locales (índices), que son archivos del sistema propiedad de root.
jjmontes

3

generalmente las opciones del manual deberían funcionar bien

apt-get -y --force-yes install package

Si no tiene éxito, puede intentar utilizar el yescomando.

yes | apt-get -y --force-yes install package

usé esto con mi script de aprovisionamiento de shell vagabundo

PD: en caso de que desee no interactiva, pero generalmente indicando no, puede intentar esto:

yes no | apt-get install package


1

Si siempre quieres el argumento -y, te aconsejo que agregues la línea

alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands

en tu .bashrc. Esto, como explica el comentario, agregará automáticamente el argumento -y a todos sus comandos apt-get y, por lo tanto, aprueba todas las descargas.


NOTA: Esto seguirá siendo cierto hasta que revierta su .bashrc y reinicie el shell.


1

Estaba buscando una manera de seleccionar un valor no predeterminado en un script, específicamente al instalar wireshark, y terminé usando tmux para interactuar con un shell, de la siguiente manera:

# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.