Respuestas:
a través de la página de manual de apt-get :
apt-get -y install [packagename]
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";
-y
estaban volviendo aburridos. (Además, es una respuesta más completa.)
--force-yes
: como sugiere esta respuesta a un hilo relacionadodebian-devel
, --force-yes
podrí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.)
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:
Lectura interesante: realice una instalación desatendida de un paquete Debian
-y
eso, todavía recibí mensajes que me preguntaban si quería reiniciar los servicios. Necesitaba esto para eliminar por completo todas las indicaciones.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Esto al menos debería estar /etc/apt/apt.conf
y 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.
Desde el apt-get HOWTO
Usa el -y
interruptor:
apt-get -y install packagename
generalmente las opciones del manual deberían funcionar bien
apt-get -y --force-yes install package
Si no tiene éxito, puede intentar utilizar el yes
comando.
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
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.
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