How to make apt assume yes and force yes for all installations in a bash script

Viewed 2773

I'm currently getting into linux and want to write a bash script which sets up a new machine just the way I want it to be.

In order to do that I want to install differnt things on it etc.

What I'm trying to achieve here is to have a setting at the top of the bash script which will make apt accept all [y/n] questions asked during the execution of the script

Question example I want to automatically accept:

After this operation, 1092 kB of additional disk space will be used. Do you want to continue? [Y/n]

I just started creating the file so here is what i have so far:

#!/bin/bash

# Constants

# Set apt to accept all [y/n] questions
>> some setting here <<

# Update and upgrade apt
apt update;
apt full-upgrade;

# Install terminator
apt install terminator
3 Answers

apt is meant to be used interactively. If you want to automate things, look at apt-get, and in particular its -y option:

-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 an unauthenticated package or removing an essential package occurs then apt-get will abort. Configuration Item: APT::Get::Assume-Yes.

See also man apt-get for many more options.

With apt:

apt -o Apt::Get::Assume-Yes=true install <package>

See: man apt and man apt.conf

If you indeed want to set it up once at the top of the file as you say and then forget about it, you can use the APT_CONFIG environment variable. See apt.conf.

echo "APT::Get::Assume-Yes=yes" > /tmp/_tmp_apt.conf
export APT_CONFIG=/tmp/_tmp_apt.conf

apt-get update
apt-get install terminator
...
Related