Desinstalando programas no Linux

30

Estou usando o Windows e o Mac OS há cinco anos e agora estou pensando em usar o Linux diariamente. Eu instalei o Ubuntu em uma máquina virtual e tentei entender como eu posso usar o Linux para meu trabalho diário (como programador js / web designer).

Desculpe pela pergunta do novato, mas ocorre-me que às vezes quando eu instalo um programa através de make config & make install muda meu sistema de maneiras que não são reversíveis facilmente. No windows quando você instala um programa, você pode desinstalá-lo e esperançosamente se ele for reproduzido pelo livro não haverá nenhum rastro do programa deixado no sistema de arquivos ou registery, etc. No Mac OS você simplesmente excluir um aplicativo como um arquivo.

Mas no Linux existe apt-get e, em seguida, há make . Eu não entendi muito bem como posso manter minha instalação do Linux limpa e organizada. Parece que qualquer nova instalação de aplicativos pode quebrar meu sistema. Mas o Linux tem uma reputação de ser muito robusto, então deve haver algo que eu não entenda sobre como a instalação e a desinstalação do aplicativo afeta o sistema. Alguém pode lançar alguma luz sobre isso?

Atualização: ao instalar um aplicativo, seus arquivos podem se espalhar para qualquer lugar realmente (gerenciadores de pacotes lidam com parte do problema), mas há um truque legal em torno disso: use o Docker para instalar aplicativos e mantê-los em sua sandbox, especialmente se você não for usá-los com muita frequência . Também é possível executar aplicativos GUI como o Firefox totalmente em um Docker "sandbox".

    
por AlexStack 15.05.2015 / 01:38

9 respostas

28

Uma nova instalação raramente irá quebrar seu sistema (a menos que você faça coisas estranhas como misturar código-fonte e binário).

Se você usar binários pré-compilados no Ubuntu, então você pode removê-los e não ter que se preocupar em quebrar seu sistema, porque um binário deve listar o que é necessário para executar e seu gerenciador de pacotes listará quais programas confie nesse programa para você revisar.

Quando você usa fonte, você precisa ter mais cuidado para não remover algo crítico (como o glib). Não há avisos ou qualquer outra coisa quando você desinstala da origem. Isso significa que você pode quebrar completamente sua máquina.

Se você deseja desinstalar usando apt-get , use apt-get remove package conforme declarado anteriormente. Todos os programas que dependem desse pacote também serão desinstalados e você terá a chance de analisá-los.

Se você deseja desinstalar, geralmente o processo é make uninstall . Não há aviso (como eu disse acima).

make config não alterará seu sistema, mas make install .

Como iniciante, recomendo usar apt-get ou qualquer outra distro usada para pacotes binários. Isso mantém as coisas legais e organizadas e, a menos que você realmente queira, isso não vai quebrar seu sistema.

Espero que isso limpe tudo.

    
por 15.05.2015 / 01:59
16

Em teoria, make uninstall deve remover o que make install adicionou e seu sistema não acumula sujeira. O problema, claro, é que nem todos os makefiles são criados iguais.

Alguns podem omitir a regra uninstall , deixando para você descobrir o que a regra install fez. Pior, se a regra de instalação sobrescrever uma biblioteca vinculada, a rotina dumb uninstall pode quebrar as dependências de algum outro programa.

A melhor solução para instalações de origem é usar um prefixo diferente dos pacotes instalados pelo gerenciador de pacotes do sistema. O Apt instala arquivos em /usr/ , então use /usr/local/ hierarchy para suas instalações de origem. Isso torna muito mais fácil acompanhar quais arquivos pertencem a quais pacotes e desinstalações não quebrarão o sistema.

./configure --prefix=/usr/local funciona para muitos scripts de configuração. Se não, você pode editar o Makefile manualmente. Ou copie os arquivos manualmente.

O Apt e outros gerenciadores de pacotes rastreiam quais arquivos eles instalaram e suas dependências reversas, para que suas funções de desinstalação sejam seguras para uso.

    
por 15.05.2015 / 02:21
15

Eu recomendo que você use apt-get install para instalar qualquer pacote no linux e apt-get remove (nome do pacote) ou apt-get purge (nome do pacote) que removerá não apenas o pacote principal que você deseja desinstalar, mas todos os pacotes ou dependências associados que foram instalados durante a instalação.

Agora, para manter seu sistema mais limpo, eu recomendo que você use apt-get clean link (este post é interessante sobre isso) que irá remover todos os arquivos que foram baixados durante a instalação, mas não são mais necessários.

Outro comando que seria útil se você quiser remover todas as dependências instaladas em seu sistema, mas que não foram removidas quando você desinstalou é apt-get autoremove .

Se você instalar um pacote através do make and make install você será responsável por desinstalá-lo você mesmo (talvez haja um arquivo README incluído no pacote baixado que lhe diga como fazê-lo) e tentar desinstalar todas as dependências associado a isso. É por isso que é sempre recomendado instalar pacotes no Linux que são oferecidos pelo gerenciador de pacotes da distro, se você fizer assim você pode ter certeza que seu pacote foi testado o suficiente para trabalhar com a distro (sabor do Linux) que você está usando e é muito improvável que quebre o seu sistema. Além disso, você pode ter certeza de que seu pacote será atualizado quando necessário, ao passo que, se você instalá-lo sozinho, será o responsável por fazer tudo isso.

Espero que isso ajude:)

    
por 15.05.2015 / 02:06
11

A maneira normal de gerenciar aplicativos instalados no Linux é com um gerenciador de pacotes. A escolha dos gerenciadores de pacotes é uma das principais coisas que diferenciam as distribuições. O Ubuntu, como o Debian (em que é baseado), usa dpkg e APT ; na maioria das vezes, você só precisa interagir com uma das interfaces para o APT, como apt-get (linha de comando), aptitude (linha de comando ou modo de texto) ou Synaptic (GUI).

Um gerenciador de pacotes acompanha quais arquivos pertencem a qual programa instalado. Como no Windows, os programas podem executar código arbitrário como parte de seu procedimento de instalação ou desinstalação, mas geralmente são bem comportados e não quebram outros programas. Além disso, o código de (des) instalação é escrito pelo mantenedor do pacote, não pelo autor do upstream (para pacotes na distribuição principal). Ao contrário do Windows, existe uma interface unificada para instalação, atualização e desinstalação: o gerenciador de pacotes. Você não precisa procurar pelo desinstalador (se houver), basta clicar no ícone "desinstalar" no gerenciador de pacotes gráficos ou executar apt-get remove PACKAGENAME .

Se você precisar de um software "exótico", pode ser necessário instalá-lo manualmente, descompactando um arquivo ou compilando a partir da origem. Instaladores que vêm na forma de um programa executável são raros no mundo do Linux. A execução de make install tende a distribuir cada programa por vários diretórios ( /usr/local/bin , /usr/local/man , /usr/local/lib , etc.). Para manter as coisas ordenadas, recomendo usar um “gerenciador de pacotes do pobre”, como stow . Com o armazenamento, cada pacote é instalado em seu próprio diretório e o utilitário stow cuida da criação de links simbólicos para que os comandos instalados pelo pacote estão no caminho de busca do comando e assim por diante. Consulte Como acompanhar os programas para obter mais detalhes.

    
por 15.05.2015 / 03:00
8

Quase toda distro tem sua própria escolha de gerenciador de pacotes, existem vários populares. pacman, apt, rpm, emerge, ... distros baseadas no debian usam apt.

O documento parece assustador, mas não é realmente tão difícil de criar .debs para locais use , apenas fique na tarefa.

    
por 15.05.2015 / 02:29
8

Você deve tentar usar o gerenciador de pacotes (apt-get, aptitude, synaptic ou aptdcon, software-center, mintinstall, ..) se possível. Usar uma tarefa make para instalação é muito bruta, não é garantido que tenha uma contraparte uninstall e não é garantido que ela funcione bem com o resto do sistema (é apenas um script vinculado ao sistema make - e, ao contrário de um pacote revisado, as tarefas podem conter qualquer código executável, potencialmente malware).

Se você não encontrar uma versão empacotada do software que precisa, poderá achar checkinstall ( checkinstall make install ) útil.

    
por 15.05.2015 / 02:06
3

Não sou especialista e não sei muito sobre a instalação de software a partir da origem, mas usando apt-get , você pode remover o software instalado com apt-get remove package-name . Para remover também todos os arquivos de configuração, use apt-get purge package-name . A maneira mais segura de manter a instalação do Linux é usar apenas pacotes nos repositórios oficiais. Quando um pacote é necessário e não está nos repositórios oficiais, ele pode ser encontrado (desde que você esteja usando o Ubuntu) em um PPA .

    
por 15.05.2015 / 01:52
3

Como as outras respostas dizem, hoje em dia é típico instalar a grande maioria do seu software usando o gerenciador de pacotes da sua escolha. Isso é tão conveniente que você provavelmente perderá quando voltar ao Windows! Em certo sentido, os vários "mercados" e "lojas" estão indo nessa direção também para sistemas operacionais comerciais.

Tendo dito isso, lembro que, quando comecei a aprender sobre Linux, fiquei intrigado com a forma como o software é normalmente instalado. Enquanto no Windows todos os arquivos vão em um único diretório em c:\Programs , o tradicional "modo unix" é espalhá-los em "locais padrão" (os detalhes não são padronizados, [dê uma olhada no LSB para mais informações] [1]), como /usr/local/bin para executáveis, /usr/local/doc para documentação e assim por diante.

De certa forma, o Windows "não sabe" onde estão seus executáveis. Ele sabe que eles estão "em algum lugar abaixo de c:\Program Files ", mas não muito mais. A varredura de todos os diretórios para encontrá-los é, ou costumava ser, proibitivamente cara. Assim, um link para o executável seria colocado explicitamente em um local conhecido (o menu Iniciar), e é isso que você usaria para iniciá-lo.

No Unix / Linux, seu shell e a maioria dos outros programas, procurarão automaticamente executáveis ou outros recursos em um conjunto conhecido de locais. É por isso que, copiando seus arquivos em seus diretórios apropriados, você automaticamente "os verá", sem precisar "registrá-los" em qualquer lugar para os usuários saberem sobre eles.

Ambos os mecanismos têm seus prós e contras, mas você verá que a abordagem Unix é tipicamente mais flexível.

Por favor, tenha em mente que há muitas exceções e detalhes que tornam a imagem não tão clara como eu a descrevi, mas acho que esse tipo de introdução pode ser útil para os novatos entenderem, pelo menos, a lógica básica por trás dela.

    
por 15.05.2015 / 12:18
3

Acho que o melhor conselho é apenas esta postagem no fórum . Aqui estão suas opções (2 e 3 são mais ou menos iguais em termos de efeito, na verdade):

  1. Use um gerenciador de pacotes e um repositório. Isso significa que você recebe atualizações, obtém lançamentos oficiais, lançamentos assinados etc. etc. etc.
  2. Se você não puder ou não usar um pacote de um repositório, crie um pacote para o software e instale-o usando o gerenciador de pacotes. Instruções detalhadas para fazer isso em sistemas baseados no Debian estão na postagem vinculada acima. Parece assustador no começo, mas é realmente muito simples, e especialmente no caso do Debian existem muitos scripts para fazer todo o trabalho duro para você.
  3. Se você não conseguir que o método funcione, use checkinstall como outros recomendaram . É um substituto muito simples para fazer a instalação:

    $ ./configure
    $ make
    $ sudo checkinstall
    

    Isso deve construir o software como normal e, em seguida, executar make install em um ambiente confinado que rastreia o que ele faz e cria um pacote que faria exatamente essas coisas. Em seguida, ele instala esse pacote com o gerenciador de pacotes. Remover então é como remover qualquer outro pacote, assim como em (2).

  4. Se você não pode ou não vai usar um gerenciador de pacotes, então use make install , eu acho. E espere que o mantenedor de software mantenha uma rotina de desinstalação.
por 17.05.2015 / 20:11

Tags