'Apt-get' è deprecato?


54

Ultimamente, ho visto molte persone usare

sudo apt

invece di

sudo apt-get

Inoltre, Ubuntu continua a dirmi di installare le cose sudo apt

The program 'foo' is currently not installed. You can install it by typing:
sudo apt install foo

(ricorda, foo è un segnaposto, non un'app)

Quindi, dopo questa popolarità nella comunità sull'uso aptinvece di apt-get, sto iniziando a pensare che apt-get sia deprecato e non possa più essere usato nei miei programmi bash.

Nei miei programmi bash,

  • devo sostituire tutti i apt-getcomandi con apt?
  • è apt-getpericoloso?
  • i miei programmi funzioneranno ancora?

7
Vedere questo post correlato: askubuntu.com/q/445384/295286
Sergiy Kolodyazhnyy,

Apt è più bello di apt-get
WinEunuuchs2Unix il

2
Il motivo per cui alcuni utenti (come me) usano aptè perché è più breve di apt-get. Meno tasti, meno tempo impiegato. Uso apt-getper cose come checkse.
Gallifreyan,

Risposte:


36

apt-getè di livello inferiore e retrocompatibile. aptè migliore per gli utenti finali e non richiede né contiene alcune funzionalità extra in cui sono presenti apt-get.

Entrambi stanno perfettamente bene. apt-getnon è obsoleto, ma l'installazione 15.10 è :)

Modifica: dalla pagina man di apt (8)

Il comando apt è pensato per essere piacevole per gli utenti finali e non ha bisogno di essere retrocompatibile come apt-get (8).

Edit2: è aptstato progettato per correggere alcuni dei difetti fondamentali della dipendenza apt-get. Essendo un wrapper, aptè quindi di livello superiore e perde anche alcune funzionalità di retrocompatibilità e scripting.


19
Quali funzioni non sono in apt-get non in apt? E come è meglio apt per l'utente finale?
Anwar,

4
Ancora una volta, apt-get non è di livello inferiore a apt. Questa è un'informazione fuorviante. apt è allo stesso livello di apt-get e apt non è altro che un wrapper per apt-get e apt-cache
Anwar,

@Anwar: ci sono differenze. Un esempio: apt upgradeapt-get upgrade, poiché il primo installa nuovi pacchetti, mentre il secondo no.
Gunnar Hjalmarsson,

26
@Anwar Se aptè presente un wrapper, apt-getallora è decisamente di livello superiore.
Tavian Barnes,

2
@Anwar Questa è in realtà la definizione di "livello superiore" o "livello inferiore". apt è di livello superiore perché racchiude apt-get. Una sorta di test è che se il tuo apt si corrompesse, apt-get funzionerebbe comunque-- ma non viceversa.
Sir Robert,

47

No, apt-getnon è obsoleto. La pagina man di aptha questo da dire su aptvs. apt-get(e apt-cache):

UTILIZZO SCRIPT E DIFFERENZE DA ALTRI STRUMENTI APT

La riga di comando apt (8) è progettata come uno strumento per l'utente finale e può cambiare il comportamento tra le versioni. Anche se tenta di non interrompere la compatibilità con le versioni precedenti, ciò non è garantito se una modifica sembra vantaggiosa per l'uso interattivo.

Tutte le funzionalità di apt (8) sono disponibili anche in strumenti APT dedicati come apt-get (8) e apt-cache (8). apt (8) modifica semplicemente il valore predefinito di alcune opzioni (vedi apt.conf (5) e in particolare l'ambito binario). Quindi dovresti preferire usare questi comandi (potenzialmente con alcune opzioni aggiuntive abilitate) nei tuoi script in quanto mantengono il più possibile la retrocompatibilità.

apt dà anche un avvertimento che dice

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

se rileva c'è una pipa. Per esempio:

$ apt show python | grep Package

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Package: python
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

Per quanto riguarda le tue domande,

devo sostituire tutti i comandi apt-get con apt?

No, non è necessario sostituirlo apt-getcon apt. Piuttosto se lo stavi usando negli script, dovresti attenerti apt-getperché ha un'API CLI stabile e una compatibilità con le versioni precedenti garantite.

è apt-getpericoloso?

aptè pericoloso quanto apt-get: dovresti installare software solo da fonti di cui ti fidi.

posso usare aptin Ubuntu 15.10?

Sì, puoi. Il problema qui è che stai ancora usando Ubuntu 15.10, che ora non è supportato! Esegui l'upgrade a 16.04, che è una versione LTS.

i miei programmi funzioneranno ancora?

Per programmi, presumo tu intenda gli script. Sì, funzioneranno comunque poiché apt-getnon sono deprecati. In effetti, dovresti preferire l'uso apt-getnegli script per la compatibilità con le versioni precedenti, come suggerito dalla aptpagina man di.


7

apte apt-getsono fondamentalmente lo stesso gestore di pacchetti, quello che fanno è lo stesso.

Una differenza è che aptcontiene anche funzionalità di eg apt-cachee ha un output più bello.

Tuttavia, aptnon dovrebbe ancora essere utilizzato negli script, almeno se si desidera analizzare il suo output, perché è ancora in fase di sviluppo e il suo formato di output potrebbe ancora cambiare. Anche il completamento automatico delle tab di Bash non funziona ancora con molti aptcomandi.

Puoi usare entrambi, qualunque preferisci.


apt fornisce funzionalità apt-cache con ulteriore ritardo! prova a utilizzare il pacchetto di ricerca apt e il pacchetto di ricerca apt-cache. Stesso criterio di utilizzo
Anwar,

@Anwar Non vedo alcuna differenza nell'uso apt(-cache) policy. Con apt(-cache) search, c'è una differenza di velocità, sì, ma l'output di aptè ordinato e ben formattato in cambio.
Byte Commander

-1

Come puoi vedere dalle altre risposte, puoi usare apto apt-get. Quello che vorrei aggiungere è che quando ho provato aptqualche anno fa, ho notato che ha risolto i conflitti in un modo diverso rispetto a prima apt-get. Quando la situazione era complicata (qualcosa doveva essere rimosso, alcuni pacchetti erano bloccati su una versione specifica, ho eseguito il downgrade di un pacchetto o ho usato una combinazione di pacchetti da diverse versioni), di aptsolito volevo rimuovere tonnellate di pacchetti o non riuscivo a risolvere il conflitto.

Dato che apt-getera molto meglio in queste situazioni e non aveva alcun aspetto negativo, ho rinunciato e ho aptcontinuato a usarlo apt-get. Questo è successo diversi anni fa, quindi potrebbe essere cambiato, ma se ti imbatti in una situazione simile, potresti voler provare entrambi e vedere quale può risolvere meglio il conflitto.

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.