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 of apt-get
.
apt
has been improved for interactive use and to actually do what most users expect. The APT developers reserve the right to change the public interface of this tool to further improve it. On the opposite, the public interface of apt-get
is well defined and will not change in any backwards incompatible way. It is thus the tool that you want to use when you need to script package installation requests.
synaptic
, aptitude
(which includes both a text mode interface and a graphical one — even if not complete yet), wajig
, etc. The most recommended interface, apt
, is the one that we will use in the examples given in this section. Note, however, that apt-get
and aptitude
have a very similar command line syntax. When there are major differences between these three commands, these will be detailed.
apt update
. Depending on the speed of your connection and configuration, the operation can take a while, since it involves downloading a certain number of (usually compressed) files (Packages
, Sources
, Translation-language-code
), which have gradually become bigger and bigger as Debian has developed (at least 10 MB of data for the main
section). Of course, installing from a CD-ROM/DVD set does not require any downloading — in this case, the operation is very fast.
apt install package
and apt remove package
. In both cases, APT will automatically install the necessary dependencies or delete the packages which depend on the package that is being removed. The apt purge package
command involves a complete uninstallation by deleting the configuration files as well.
sources.list
mentions several distributions, it is possible to give the version of the package to install. A specific version number can be requested with apt install package=version
, but indicating its distribution of origin (Stable, Testing or Unstable) — with apt install package/distribution
— is usually preferred. With this command, it is possible to go back to an older version of a package (if, for instance, you know that it works well), provided that it is still available in one of the sources referenced by the sources.list
file. Otherwise the snapshot.debian.org
archive can come to the rescue (see sidebar APPROFONDIMENTO Le vecchie versioni dei pacchetti: snapshot.debian.org
).
Esempio 6.4. Installation of the Unstable version of spamassassin
#
apt install spamassassin/unstable
.deb
file without any associated package repository, it is still possible to use APT to install it together with its dependencies (provided that the dependencies are available in the configured repositories) with a simple command: apt install ./path-to-the-package.deb
. The leading ./
is important to make it clear that we are referring to a filename and not to the name of a package available in one of the repositories.
apt upgrade
, apt-get upgrade
o aptitude safe-upgrade
(ovviamente dopo apt update
). Questo comando controlla i pacchetti installati che possono essere aggiornati senza la rimozione di alcun pacchetto. In altre parole, l'obiettivo è quello di garantire l'aggiornamento meno intrusivo possibile. apt-get
è un po' più esigente di aptitude
o apt
perché si rifiuta di installare pacchetti che erano già installati in precedenza.
apt
in genere seleziona il numero di versione più recente (ad eccezione dei pacchetti Experimental e stable-backports, che vengono ignorati per impostazione predefinita a prescindere dal loro numero di versione). Se si è specificato Testing o Unstable nel proprio sources.list
, apt upgrade
porterà la maggior parte di un sistema Stable a Testing o Unstable, e ciò potrebbe non essere quello che si desiderava fare.
apt
to use a specific distribution when searching for upgraded packages, you need to use the -t
or --target-release
option, followed by the name of the distribution you want (for example, apt -t stable upgrade
). To avoid specifying this option every time you use apt
, you can add APT::Default-Release "stable";
in the file /etc/apt/apt.conf.d/local
.
apt full-upgrade
. Con questa istruzione, apt
completerà l'aggiornamento anche nel caso in cui debba eliminare dei pacchetti obsoleti o installare nuove dipendenze. Questo è anche il comando usato dagli utenti che lavorano quotidianamente con il rilascio Unstable di Debian e che seguono la sua evoluzione giorno per giorno. È così semplice che non ha certo bisogno di spiegazione: la reputazione di APT si basa su questa sua grande funzionalità.
apt
e aptitude
, apt-get
non usa il comando full-upgrade
. Invece, si dobrebbe usare apt-get dist-upgrade
(”aggiornamento della distribuzione”), lo storico e ben noto comando che è accettato anche da apt
e aptitude
per comodità degli utenti che si sono abituati.
/var/log/apt/history.log
and /var/log/apt/term.log
, whereas dpkg
keeps its log in a file called /var/log/dpkg.log
.
/etc/apt/apt.conf.d/
directory or /etc/apt/apt.conf
itself. Remember, for instance, that it is possible for APT to tell dpkg
to ignore file conflict errors by specifying DPkg::options { "--force-overwrite"; }
.
Acquire::http::proxy "http://proprioproxy:3128"
. Per un proxy FTP, scrivere Acquire::ftp::proxy "ftp://proprioproxy"
. Per scoprire più opzioni di configurazione, leggere la pagina di manuale apt.conf(5) con il comando man apt.conf
(per i dettagli sulle pagine del manuale, vedere la Sezione 7.1.1, «Pagine di manuale»).
-t
o con la direttiva di configurazione APT::Default-Release
).
/etc/apt/preferences.d/
or the /etc/apt/preferences
file with the names of the affected packages, their version, their origin and their new priority.
/etc/apt/preferences
and /etc/apt/preferences.d/
, it first takes into account the most specific entries (often those specifying the concerned package), then the more generic ones (including, for example, all the packages of a distribution). If several generic entries exist, the first match is used. The available selection criteria include the package's name and the source providing it. Every package source is identified by the information contained in a Release
file that APT downloads together with the Packages
files. It specifies the origin (usually “Debian” for the packages of official mirrors, but it can also be a person's or an organization's name for third-party repositories). It also gives the name of the distribution (usually Stable, Testing, Unstable or Experimental for the standard distributions provided by Debian) together with its version (for example, 10 for Debian Buster). Let's have a look at its syntax through some realistic case studies of this mechanism.
/etc/apt/preferences
:
Package: * Pin: release a=stable Pin-Priority: 900 Package: * Pin: release o=Debian Pin-Priority: -10
a=stable
definisce il nome della distribuzione selezionata. o=Debian
limita l'impostazione ai pacchetti la cui origine è "Debian".
Package: perl Pin: version 5.24* Pin-Priority: 1001
apt-cache policy
to display the default priority associated with each package source, or apt-cache policy package
to display the default priority for each available version and source of a package as explained in SUGGERIMENTO apt-cache policy
.
/etc/apt/preferences
and /etc/apt/preferences.d/
is available in the manual page apt_preferences(5), which you can display with man apt_preferences
.
apt
è uno strumento così meraviglioso, si può essere tentati di prendere pacchetti provenienti da altre distribuzioni. Ad esempio, dopo aver installato un sistema Stable, si potrebbe desiderare di provare un pacchetto software disponibile in Testing o Unstable, senza scostarsi troppo dallo stato iniziale del sistema.
apt
gestisce tale coesistenza molto bene e limita i rischi in modo molto efficace. Il miglior modo di procedere è quello di elencare tutte le distribuzioni utilizzate in /etc/apt/sources.list
(alcune persone mettono sempre le tre distribuzioni, ma ricordare che Unstable è riservata agli utenti esperti) e di definire la distribuzione di riferimento con il parametro APT::Default-Release
(vedere la Sezione 6.2.3, «Aggiornamento del sistema»).
sources.list
. In questo caso, è possibile usare apt install pacchetto/testing
per installare un pacchetto da Testing. Se l'installazione non riesce a causa di alcune dipendenze che non possono essere soddisfatte, si può lasciare che risolva queste dipendenze in Testing aggiungendo il parametro -t testing
. Lo stesso vale ovviamente per Unstable.
upgrade
e full-upgrade
) vengono fatti all'interno di Stable eccetto per i pacchetti già aggiornati ad altre distribuzioni: questi seguiranno gli aggiornamenti disponibili nelle altre distribuzioni. Questo comportamento verrà spiegato più avanti con l'aiuto delle priorità predefinite impostate da APT. Non esitare ad usare apt-cache policy
(vedere riquadro SUGGERIMENTO apt-cache policy
) per verificare le priorità assegnate.
/etc/apt/preferences
per forzare priorità più alte di 1000 per alcuni pacchetti).
/etc/apt/preferences
to this effect:
Package: * Pin: release a=unstable Pin-Priority: 490
apt
is the tracking of packages installed only through dependencies. These packages are called “automatic”, and often include libraries.
apt-get autoremove
or apt autoremove
will get rid of those packages. aptitude
does not have this command because it removes them automatically as soon as they are identified. In all cases, the tools display a clear message listing the affected packages.
apt-mark auto pacchetto
marca il pacchetto specificato come automatico, mentre apt-mark manual pacchetto
fa l'opposto. aptitude markauto
e aptitude unmarkauto
funzionano nello stesso modo, anche se offrono più funzionalità per marcare molti pacchetti contemporaneamente (vedere la Sezione 6.5.1, «aptitude
»). L'interfaccia interattiva basata su console di aptitude
rende anche facile revisionare il «contrassegno automatico» per molti pacchetti.
aptitude why pacchetto
(apt
e apt-get
non hanno una funzionalità simile):
$
aptitude why python-debian
i aptitude Suggests apt-xapian-index p apt-xapian-index Depends python-debian (>= 0.1.14)