Como os vários comandos de remoção do pacote APT diferem?

17

Qual é a diferença entre esses comandos?

  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
por sajjad 01.08.2013 / 03:50

1 resposta

24

Resposta rápida

  • remove desinstala os pacotes com o mesmo nome.
  • autoremove desinstala todos os pacotes instalados automaticamente que não são mais necessários. É incorreto listar nomes de pacotes após autoremove ; eles serão ignorados (e todos pacotes elegíveis serão removidos), o que provavelmente não é o que você pretende.
  • --purge faz com que arquivos de configuração do sistema associados a pacotes sendo removidos sejam removidos também. Ele deve ser acompanhado por um comando, como remove ou autoremove . O sinalizador --purge modifica a ação de um comando; não age por conta própria.
  • purge significa a mesma coisa que --purge remove (que é o mesmo que remove --purge ). É incorreto dizer purge duas vezes; o segundo purge é interpretado como o nome de um pacote a ser purge d, o que provavelmente não é o que você pretende.

Resposta completa

Para entender o que esses comandos fazem e como eles são diferentes, isso ajuda (e provavelmente é essencial) a entender dois conceitos:

  1. a distinção entre manualmente instalado e instalado automaticamente pacotes
  2. a distinção entre os arquivos de pacote de um pacote e seus arquivos de configuração

Instalado manualmente vs. instalado automaticamente

Um pacote instalado é manualmente ou automaticamente instalado.

Quando você especifica um pacote para instalação e ele é instalado, ele é manualmente instalado.

Mas outros pacotes também podem ser instalados. A maioria dos pacotes tem dependências - outros pacotes que devem ser instalados, para que o pacote funcione como pretendido. Quando você instala um pacote, suas dependências (ou seja, os outros pacotes dos quais ele depende) são instaladas, exceto aquelas que foram instaladas antes.

Quando um pacote não é especificado por você para ser instalado, mas é instalado como uma dependência de um pacote que você especificou para instalar, ele é automaticamente instalado.

Por favor, note que quando você tem dois pacotes instalados e um deles é uma dependência de outro, isso não significa que a dependência seja instalada automaticamente. Também é possível que a dependência tenha sido instalada manualmente (ou seja, especificada por você, por exemplo, instalada antes ou ao mesmo tempo que o pacote que depende dela).

Finalmente:

  • Se você tentar instalar manualmente um pacote já instalado, ele permanecerá instalado. Mas se foi instalado automaticamente, uma alteração é feita - tentar instalá-lo manualmente irá marcá-lo manualmente.
  • Você pode marcar qualquer pacote como instalado manual ou automaticamente (com o apt-mark , não importa como ou sob quais circunstâncias eles foram realmente instalados.
  • Os pacotes que vêm pré-instalados com o seu sistema Ubuntu não são todos instalados automaticamente; alguns deles vêm marcados automaticamente instalados e outros vêm marcados manualmente instalados. Isso é para satisfazer a lógica por trás da distinção entre pacotes instalados manualmente e automaticamente - a ideia de que alguns pacotes são necessários apenas para o serviço de outros.

Normalmente, para cada pacote instalado automaticamente, você terá pelo menos um pacote instalado manualmente que depende dele (e que o levou a ser instalado automaticamente). No entanto, se você remover todos os pacotes instalados manualmente que dependem de um pacote instalado automaticamente, o pacote instalado automaticamente não será mais necessário, mas ainda será instalado.

apt-get autoremove remove os pacotes instalados automaticamente que não possuem mais pacotes manualmente instalados, dependendo deles.

Arquivos de pacote e arquivos de configuração

Um pacote fornece arquivos que devem ser e permanecer os mesmos em todos os sistemas em que a versão desse pacote está instalada. Esses arquivos fornecem executáveis, recursos, documentação e outros "recursos" para programas instalados. Normalmente, chamamos apenas esses "arquivos" fornecidos por um pacote.

Mas um pacote também fornece outros arquivos, que devem (possivelmente) ser alterados. Estes são chamados de arquivos de configuração globais (ou em todo o sistema). Eles quase sempre são instalados no diretório /etc e podem ser modificados automática e manualmente para alterar o comportamento dos programas instalados. Por exemplo, sudo tem um arquivo de configuração /etc/sudoers e um diretório para mais arquivos de configuração /etc/sudoers.d . Esse arquivo e quaisquer arquivos adicionados a esse diretório especificam quem tem permissão para usar sudo de que maneira.

Normalmente, é desejável que a desinstalação de um pacote e sua instalação não alterem a maneira como ele se comporta (a menos que seus arquivos de pacote estejam corrompidos e é por isso que você o reinstalou, é claro).

por Eliah Kagan 01.08.2013 / 04:59