apt-get update non interactive
Solution 1
You need to pass some dpkg
options to your commands, for instance:
export DEBIAN_FRONTEND=noninteractive
apt-get update &&
apt-get -o Dpkg::Options::="--force-confold" upgrade -q -y --force-yes &&
apt-get -o Dpkg::Options::="--force-confold" dist-upgrade -q -y --force-yes
On a side note, I would recommend using only dist-upgrade
, you will eventually end up with broken dependencies if you use upgrade
.
Solution 2
>= Apt 1.1
If you're using Apt 1.1 or above, --force-yes
has been deprecated, so you've to use the options starting with --allow
instead, e.g. --allow-downgrades
, --allow-remove-essential
, --allow-change-held-packages
.
So the command is:
DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::=--force-confold \
-o Dpkg::Options::=--force-confdef \
-y --allow-downgrades --allow-remove-essential --allow-change-held-packages
Note: Use --force-confold
to keep old, and --force-confnew
to keep new configs.
Source: CFE-2360: Make apt_get package module version aware.
Related:
- 100% non-interactive Debian dist-upgrade
- How do I ask apt-get to skip any interactive post-install configuration steps?
- Non-interactive apt upgrade
David
Updated on July 09, 2022Comments
-
David 11 months
I'm trying to make an update fully non interactive.(on ubuntu 14.04.3 LTS) I thought it will be easy with this type of command:
export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get upgrade -q -y --force-yes && apt-get dist-upgrade -q -y --force-yes
but no... I always have a question like:
Configuration file '/etc/cloud/cloud.cfg' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** cloud.cfg (Y/I/N/O/D/Z) [default=N] ?
So do you known how I can accept the default value automatically ?
-
Irving almost 6 yearsFor any other fellow travelers that find this, the quoting around
Dpkg::Options
is wrong. it should be:apt-get -o "Dpkg::Options::=--force-confold" dist-upgrade -y --force-yes
-
Irving almost 6 yearsFor use within sudo, make sure to put the environment variable in front of the command rather than hoping sudo won't strip your envs, like:
sudo DEBIAN_FRONTEND=noninteractive apt-get -o "Dpkg::Options::=--force-confold" dist-upgrade -y --force-yes
-
ryanpcmcquen almost 6 years@Irving, that quoting worked for me, perhaps something changed recently?
-
jacobq about 5 years
W: --force-yes is deprecated, use one of the options starting with --allow instead.
(apt v1.1 and newer). Looks like the new equivalent is--allow-downgrades --allow-remove-essential --allow-change-held-packages
-
bovine about 2 yearsI think you're missing the word "update" in your command someplace?