Posso rimuovere apt con apt?

45

So che posso usare apt-get remove <package> per rimuovere un programma.

Ma apt è un programma stesso. Potrei usare apt-get remove apt per rimuoverlo, o sarebbe confuso parzialmente?

    
posta Tim 17.01.2016 - 14:57

6 risposte

78

APT ti permette di simulare i tuoi comandi usando l'opzione -s . Puoi provare tu stesso, inviando il comando apt-get -s remove apt (non è necessario sudo ).

Questo produce il seguente output:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

Quindi la risposta dovrebbe essere: sì, puoi.

    
risposta data cauon 17.01.2016 - 15:13
30

Puoi ...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

e ti avviseremo che stai per fare qualcosa di molto distruttivo. Devo dire ... l'elenco dei pacchetti sembra orribile per un risparmio di spazio inferiore a 6000kb: D

Finisce ma non c'è modo di tornare usando "apt-get". Ubuntu Software Center non funzionerà più e avresti bisogno di usare "dpkg" per reinstallare un gestore di pacchetti (e anche manualmente dovrai installare tutte le dipendenze).

    
risposta data Rinzwind 17.01.2016 - 15:10
11

Una volta, quando ho eseguito CoreUbuntu, ho installato un pacchetto buggy dal sorgente che apt ha deciso% obsoleto% co_de. La prossima volta che ho eseguito apt , in realtà non ho esaminato l'elenco del software da rimuovere e apt autoremove era nell'elenco.

Immagina la mia sorpresa la prossima volta che ho digitato apt e ottenuto apt install <package-name> .

Fortunatamente, per qualche ragione, The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt non ha rimosso nessuna delle dipendenze di autoremove , quindi tutto ciò che dovevo fare era apt wget 's apt archiviare e reinstallare usando .deb .

Come mostrato nelle altre risposte, se rimuovi dpkg -i con apt , avrai più problemi a causa delle dipendenze che tenta di risolvere.

Lo trovo interessante ma è vero che (sicuramente per Debian, e forse Fedora / openSUSE in misura?) molte distribuzioni moderne sono definite e costruite in gran parte sull'infrastruttura fornita dal loro gestore di pacchetti di scelta.

    
risposta data cat 17.01.2016 - 18:50
5

Tecnicamente, apt non può rimuovere apt ... perché apt non sa come rimuovere, installare o aggiornare i pacchetti. Le attività di installazione, rimozione, aggiornamento, configurazione dei pacchetti sono lasciate a dpkg. Anche se puoi dire apt per rimuovere il pacchetto chiamato "apt", ciò che fa è controllare le dipendenze inverse del pacchetto apt, prendere nota di questi pacchetti e ordini dpkg per rimuoverli. Quale è ciò che può essere visto in l'altro risposte .

Anche senza apt puoi usare dpkg per installare, rimuovere o aggiornare i pacchetti, solo che sarà più doloroso monitorare le dipendenze e gli aggiornamenti necessari, che è la ragion d'essere di apt.

    
risposta data Braiam 19.01.2016 - 14:41
1

Certo che puoi. Apt e dpkg sono essi stessi pacchetti, e sono pensati per poter essere aggiornati da soli, quindi ci sono delle disposizioni per la rimozione; altrimenti /var/lib/dpkg/info/dpkg.prerm e /var/lib/dpkg/info/dpkg.postrm non avrebbero ragione di esistere:)

Se li hai rimossi per sbaglio in un modo che ti ha lasciato senza dpkg, puoi comunque decomprimere manualmente l'archivio .deb per dpkg a meno che tu non abbia eliminato binutils, tar, gzip / bzip2.

--purge su tutti i pacchetti coinvolti con la toolchain apt potrebbe darti brutti problemi, però; difficile capire cosa possiede determinati file in /var/lib/dpkg . Se /var/lib/dpkg/status è stato cancellato e non c'era alcun backup corrente, allora sì, il gestore pacchetti sarebbe irreparabile su quel sistema.

    
risposta data rackandboneman 20.01.2016 - 12:00
-1

Giuro di aver visto il apt binari sotto /usr/local/bin su un sistema basato su Ubuntu non molto tempo fa, ma non sono lì sul mio attuale sistema Ubuntu MATE 15.04 (sono in /usr/bin con la maggior parte di gli altri binari). Se era in /usr/local/bin allora probabilmente non sarebbe possibile disinstallarlo con apt perché i file in /usr/local/bin dovrebbero essere ignorati dal gestore pacchetti. Devo ammettere che mettere apt (e dpkg pure) sotto /usr/local/bin sarebbe una buona idea.

Una domanda più interessante è: cosa succede se disinstalli dpkg ? Abbastanza sicuro, dpkg è elencato come pacchetto da apt , ma non ho intenzione di provare a disinstallarlo ora (non ho una macchina virtuale impostata al momento). In teoria si potrebbe anche disinstallarlo con dpkg stesso. Prenderò un'ipotesi plausibile sul fatto che l'unico modo per reinstallarlo sarebbe farlo manualmente, quindi sperare che raccolga i file di configurazione esistenti (in modo da non doverlo ripetere manualmente al sistema quali pacchetti sono installati) e poi dirgli che il pacchetto dpkg è ora installato di nuovo.

(Una battuta :) L'equivalente di # rm -rf / di un utente Debian è # apt-get purge ".*" .

    
risposta data Micheal Johnson 19.01.2016 - 19:24

Leggi altre domande sui tag