Qual è la differenza tra apt e apt-get?


458

Ho letto della nuova elegante barra di avanzamento che è stata aggiunta alla apt1.0 in Softpedia e come abilitarla qui . Tuttavia, correndo sudo apt-get update, non ho visto le fantasiose barre di avanzamento. Leggendo di nuovo il secondo collegamento, la soluzione richiede esplicitamente l'utilizzo sudo apt update.

Quindi la mia domanda è la differenza tra apte apt-get. Ho pensato che fossero la stessa cosa.


1
AFAIK sono disponibili solo in Trusty. Ecco come abilitarli: askubuntu.com/questions/445245/…
Seth

8
dato che il commento di @Seth ha quasi 2 anni, ho pensato di aggiungere ora che è disponibile, installato e utilizzabile immediatamente. Non è necessario nulla per abilitarli, basta usare aptinvece di apt-get(Sono il 15.10)
Madivad,

Risposte:


400

Sono strumenti della riga di comando molto simili disponibili in Trusty. apt-gete apt-cachei comandi più comunemente usati sono disponibili in apt.

apt-getpuò essere considerato di livello inferiore e "back-end" e supportare altri strumenti basati su APT. apt è progettato per gli utenti finali (umani) e il suo output può essere modificato tra le versioni.

Nota da 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).

Dai un'occhiata a questo post per ulteriori informazioni sul nuovo strumento:

Una sinossi del link sopra (con correzioni * ):

La grande novità di questa versione è che abbiamo incluso un nuovo binario "apt" che combina i comandi più comunemente usati da apt-get e apt-cache. I comandi sono gli stessi delle loro controparti apt-get / apt-cache ma con opzioni di configurazione leggermente diverse.

Attualmente il binario apt supporta i seguenti comandi:

  • list : che è simile dpkg liste può essere utilizzato con flag come --installedo --upgradable.
  • ricerca : funziona esattamente come apt-cache searchma in ordine alfabetico.
  • mostra : funziona come, apt-cache showma nasconde alcuni dettagli di cui alle persone è meno probabile interessarsi (come gli hash). Il record completo è ancora disponibile tramite apt-cache showovviamente.
  • aggiornamento : proprio come il normale apt-get updatecon l'output a colori abilitato.
  • installa, rimuovi : aggiunge l'output dell'avanzamento durante l'esecuzione di dpkg.
  • aggiornamento : lo stesso di apt-get upgrade --with-new-pkgs. *
  • aggiornamento completo : un nome più significativo per dist-upgrade.
  • edit-sources : modifica sources.listusando $EDITOR.
  • politica : funziona proprio comeapt-cache policy

È possibile abilitare / disabilitare l'avanzamento dell'installazione [barra] tramite:

# echo 'Dpkg::Progress-Fancy "1";' > /etc/apt/apt.conf.d/99progressbar

3
Solo curioso - apt upgrade non equivale a 'upgrade --with-new-pkgs' (invece di dist-upgrade quale IIRC fa di default e rimuove anche)?
zeratul021

Stranamente apt upgrademi dà un errore in cui apt-get upgradestampa un avviso solo quando un PPA non ha un file di rilascio.
Tor Klingberg,

1
Quel post sul blog è sbagliato dire che apt upgradeè come apt-get dist-upgrade --with-new-pkgs. dist-upgradepuò installare nuovi pacchetti e rimuoverli . UI a parte, lo apt upgradeè apt-get upgrade --with-new-pkgs. Vedi la risposta di JungleMartin e apt (8) su upgrade: "I nuovi pacchetti verranno installati se richiesti per soddisfare le dipendenze, ma i pacchetti esistenti non verranno mai rimossi."
Eliah Kagan,

3
Vale la pena ricordare che a partire da 16.04 di default apt non salva i pacchetti scaricati mentre apt-get lo fa.
Doug

69

Mentre scrivo, la aptpagina man (la mia versione del pacchetto apt: 1.0.1ubuntu2.8) include la seguente sezione:

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.

2
Questa è la risposta corretta (per Debian e Ubuntu e altri derivati ​​come Mint). In particolare, l'esecuzione sudo apt upgradeeseguirà le stesse operazioni di sudo apt-get upgrade --with-new-pkgs. Installerà nuovi pacchetti ma, a differenza sudo apt-get dist-upgrade , non rimuoverà quelli vecchi (tranne che durante l'installazione di una nuova versione dello stesso pacchetto, ovviamente - cosa che sudo apt-get upgradefarà altrettanto). man aptconferma inoltre che questa risposta è corretta.
Eliah Kagan,

Sto eseguendo il rollback del rollback della mia modifica perché a) la formattazione richiede uno scorrimento non necessario e b) il testo copiato non è corretto, l'opzione non lo è DPkgPM::..., ma DPkg::.., come mostra la manpage online.
muru,

2
punti bonus per RTFM
Thufir,

L'opzione "check" non funziona con apt. Devo usare "apt-get check". Perché?
Juan,

22

Esistono vari strumenti che interagiscono con Advanced Packaging Tool (APT) e consentono di installare, rimuovere e gestire i pacchetti nelle distribuzioni Linux basate su Debian . apt-getè uno di questi strumenti da riga di comando che è molto popolare. Un altro strumento popolare è Aptitude con entrambe le opzioni della GUI e della riga di comando.

Se hai usato i apt-getcomandi, potresti esserti imbattuto in una serie di comandi simili come apt-cache, apt-configecc. Ed è qui che sorge il problema.

Vedete, questi comandi sono di livello troppo basso e hanno così tante funzionalità che forse non sono mai usate da un utente medio di Linux. D'altra parte, i comandi di gestione dei pacchetti più comunemente utilizzati sono sparsi apt-get, apt-cachee apt-config.

I aptcomandi sono stati introdotti per risolvere questo problema. aptconsiste alcune delle caratteristiche più usati apt-get, apt-cachee apt-configtralasciando caratteristiche oscure e raramente utilizzati.

Con apt, non devi armeggiare da apt-geta apt-cachea apt-config. aptè più strutturato e offre le opzioni necessarie per gestire i pacchetti.

Bottom line: apt = opzioni di comando usate più comuni da apt-get, apt-cachee apt-config.

Ho scritto in dettaglio sulla differenza tra apt e apt-get .


15

APT è un vasto progetto, i cui piani originali includevano un'interfaccia grafica. Si basa su una libreria che contiene l'applicazione principale e apt-get è il primo front-end - basato sulla riga di comando - che è stato sviluppato all'interno del progetto.

aptè un secondo front-end basato su riga di comando fornito da APT che supera alcuni errori di progettazione di apt-get.

Citato da:

https://debian-handbook.info/browse/stable/sect.apt-get.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.