I was told not to use apt-get install in a setup.sh script [duplicate]
I read about the new fancy progress bar which was added to apt
1.0 in Softpedia and how to enable it here. However on running sudo apt-get update
, I did not see the fancy progress bars. On reading the second link again, the solution explicitly requires you to use sudo apt update
.
Hence my question is the difference between apt
and apt-get
. I thought they were one and the same.
Solution 1:
They are very similar command line tools available in Trusty (14.04) and later. apt-get
and apt-cache
's most commonly used commands are available in apt
.
apt-get
may be considered as lower-level and "back-end", and support other APT-based tools. apt
is designed for end-users (human) and its output may be changed between versions.
Note from apt(8):
The `apt` command is meant to be pleasant for end users and does not need
to be backward compatible like apt-get(8).
Take a look at this post for more information on the new tool:
- http://mvogt.wordpress.com/2014/04/04/apt-1-0/
A synopsis of the above link (with corrections*):
The big news for this version is that we included a new “apt” binary that combines the most commonly used commands from apt-get and apt-cache. The commands are the same as their apt-get/apt-cache counterparts but with slightly different configuration options.
Currently the apt binary supports the following commands:
-
list: which is similar to
dpkg list
and can be used with flags like--installed
or--upgradable
. -
search: works just like
apt-cache search
but sorted alphabetically. -
show: works like
apt-cache show
but hide some details that people are less likely to care about (like the hashes). The full record is still available viaapt-cache show
of course. -
update: like the regular
apt-get update
with color output enabled, butapt update
also shows the number of upgradeable packages (if any). - install,remove: adds progress output during the dpkg run.
-
upgrade: the same as
apt-get upgrade --with-new-pkgs
.* -
full-upgrade: a more meaningful name for
dist-upgrade
. -
edit-sources: edit
sources.list
using$EDITOR
. -
policy: works just like
apt-cache policy
You can enable/disable the install progress [bar] via:
# echo 'Dpkg::Progress-Fancy "1";' > /etc/apt/apt.conf.d/99progressbar
Solution 2:
As I write this, the apt
man page (my apt package version: 1.0.1ubuntu2.8) includes the following section:
DIFFERENCES TO APT-GET(8)
The apt command is meant to be pleasant for end users and does not need
to be backward compatible like apt-get(8). Therefore some options are
different:
· The option DPkg::Progress-Fancy is enabled.
· The option APT::Color is enabled.
· A new list command is available similar to dpkg --list.
· The option upgrade has --with-new-pkgs enabled by default.
Solution 3:
There are various tools that interact with Advanced Packaging Tool (APT) and allow you to install, remove and manage packages in Debian based Linux distributions. apt-get
is one such command-line tool which is widely popular. Another popular tool is Aptitude with both GUI and command-line options.
If you have used apt-get
commands, you might have come across a number of similar commands such as apt-cache
, apt-config
etc. And this is where the problem arises.
You see, these commands are way too low level and they have so many functionalities which are perhaps never used by an average Linux user. On the other hand, the most commonly used package management commands are scattered across apt-get
, apt-cache
and apt-config
.
The apt
commands have been introduced to solve this problem. apt
consists some of the most widely used features from apt-get
, apt-cache
and apt-config
leaving aside obscure and seldom used features.
With apt
, you don’t have to fiddle your way from apt-get
to apt-cache
to apt-config
. apt
is more structured and provides you with necessary options needed to manage packages.
Bottom line: apt
= most common used command options from apt-get
, apt-cache
and apt-config
.
I have written in detail on the difference between apt and apt-get.
Solution 4:
APT is a vast project, whose original plans included a graphical interface. It is based on a library which contains the core application, and apt-get is the first front end — command-line based — which was developed within the project.
apt
is a second command-line based front end provided by APT which overcomes some design mistakes ofapt-get
.
Quoted from:
https://debian-handbook.info/browse/stable/sect.apt-get.html