Come differiscono i vari comandi di rimozione del pacchetto APT?

17

Qual è la differenza tra questi comandi?

  1. sudo apt-get autoremove --purge packagenames
  2. sudo apt-get remove --purge packagenames
  3. sudo apt-get purge purge packagenmaes
  4. sudo apt-get remove packagenames
  5. sudo apt-get autoremove
posta sajjad 01.08.2013 - 03:50

1 risposta

24

Risposta rapida

  • remove disinstalla i pacchetti nominati dopo di esso.
  • autoremove disinstalla tutti i pacchetti installati automaticamente che non sono più necessari. Non è corretto elencare i nomi dei pacchetti dopo autoremove ; saranno ignorati (e tutti i pacchetti eleggibili saranno rimossi), che probabilmente non è ciò che intendete.
  • --purge fa sì che anche i file di configurazione del sistema associati ai pacchetti da rimuovere vengano rimossi. Deve essere accompagnato da un comando, come remove o autoremove . Il flag --purge modifica l'azione di un comando; non agisce da solo.
  • purge significa la stessa cosa di --purge remove (che è uguale a remove --purge ). Non è corretto dire purge due volte; il secondo purge è interpretato come il nome di un pacchetto da purge d, che probabilmente non è quello che intendi.

Risposta completa

Per capire cosa fanno questi comandi e come sono diversi, aiuta (ed è probabilmente anche essenziale) capire due concetti:

  1. la distinzione tra installati manualmente e pacchetti installati automaticamente
  2. la distinzione tra i file di pacchetto di un pacchetto e i suoi file di configurazione

Installazione manuale vs. Installazione automatica

Un pacchetto installato è manualmente o automaticamente installato.

Quando si specifica un pacchetto per l'installazione, ed è installato, è manualmente installato.

Ma potrebbero essere installati anche altri pacchetti. La maggior parte dei pacchetti ha dipendenze - altri pacchetti che devono essere installati, affinché il pacchetto funzioni come previsto. Quando installi un pacchetto, le sue dipendenze (vale a dire gli altri pacchetti da cui dipende) sono installate, ad eccezione di quelle precedentemente installate.

Quando un pacchetto non è specificato da te per essere installato, ma invece è installato come dipendenza da un pacchetto che hai specificato di installare, è automaticamente installato.

Si noti che quando si installano due pacchetti e uno di questi è dipendente da un altro, ciò non significa che la dipendenza venga installata automaticamente. È anche possibile che la dipendenza sia stata installata manualmente (ad es., Da te specificata, ad esempio, installata prima o nello stesso momento del pacchetto che dipende da essa).

Infine:

  • Se si tenta di installare manualmente un pacchetto che è già installato, rimane installato. Ma se è stato installato automaticamente, viene apportata una modifica: provare a installarlo manualmente lo contrassegnerà come installato manualmente.
  • Puoi contrassegnare qualsiasi pacchetto come manualmente o automaticamente installato (con apt-mark comando), indipendentemente da come o in quali circostanze sono stati effettivamente installati.
  • I pacchetti che vengono preinstallati con il tuo sistema Ubuntu non sono tutti installati automaticamente; alcuni di questi vengono contrassegnati automaticamente installati e altri vengono contrassegnati manualmente installati. Questo per soddisfare la logica alla base della distinzione tra pacchetti installati manualmente e automaticamente - l'idea che alcuni pacchetti siano necessari solo al servizio degli altri.

In genere, per ogni pacchetto installato automaticamente si avrà almeno un pacchetto installato manualmente che dipende da esso (e che ne ha causato l'installazione automatica). Tuttavia, se si rimuovono tutti i pacchetti installati manualmente che dipendono da un pacchetto installato automaticamente, il pacchetto installato automaticamente non sarà più necessario, ma verrà comunque installato.

apt-get autoremove rimuove i pacchetti installati automaticamente che non hanno più alcun pacchetto installato manualmente a seconda di essi.

File del pacchetto e file di configurazione

Un pacchetto fornisce file che devono essere e rimanere lo stesso su tutti i sistemi in cui è installata la versione di quel pacchetto. Tali file forniscono eseguibili, risorse, documentazione e altre "risorse" per i programmi installati. Solitamente abbiamo chiamato questi "file" forniti da un pacchetto.

Ma un pacchetto fornisce anche altri file che sono destinati a (eventualmente) essere modificati. Questi sono chiamati file di configurazione globali (o di sistema). Sono quasi sempre installati nella directory /etc e possono essere modificati automaticamente e manualmente per modificare il comportamento dei programmi installati. Ad esempio, sudo ha un file di configurazione /etc/sudoers e una directory per più file di configurazione /etc/sudoers.d . Quel file e tutti i file aggiunti a quella directory specificano a chi è consentito utilizzare sudo in che modo.

In genere si desidera che disinstallare un pacchetto e poi reinstallarlo non dovrebbe cambiare il modo in cui si comporta (a meno che i suoi file del pacchetto non fossero corretti ed è per questo che è stato reinstallato, ovviamente).

risposta data Eliah Kagan 01.08.2013 - 04:59

Leggi altre domande sui tag