sexta-feira, 18 de junho de 2010

apt-get, aptitude, synaptic e Central de Programas Ubuntu

Esta é uma dúvida comum: diante de quatro opções para instalar e remover aplicações, qual é a melhor? Testei todas no Ubuntu 10.04 através da instalação e remoção do aplicativo mplayer (pacote de mesmo nome) e seguem os resultados.

Central de Programas Ubuntu

Vantagens
  • Melhor interface gráfica, inclusive com screenshots de programas;
  • "Aplicativos em Destaque" dá dicas sobre os programas mais usados;
  • Remove dependências ao remover um programa (outros softwares dos quais o programa a ser instalado precisa para funcionar).
  • Enfileira instalações, ou seja, após iniciar uma instalação e enquanto ela ainda estiver em andamento, é possível selecionar outro programa e ele será instalado logo após o término do primeiro.
Desvantagens
  • Não mostra quais softwares a mais precisam ser instalados como dependência;
  • Não faz purge na remoção, ou seja, podem ficar arquivos de configuração inúteis no seu computador;
  • Não mostra os tamanhos dos arquivos a serem baixados, nem a previsão do tempo de download (apenas uma barra de progresso da instalação inteira).

Synaptics
Vantagens
  • Interface gráfica;
  • É possível selecionar a remoção completa (purge).
Desvantagens
  • Não remove dependências, apenas o programa explicitamente selecionado.
apt-get
Vantagens
  • Facilidade de uso no terminal. Exemplo: sudo apt-get install mplayer;
  • Faz purge. Exemplo: sudo apt-get purge mplayer;
  • Remove dependências, apesar de muita gente dizer o contrário. Exemplo: sudo apt-get autoremove mplayer;
  • Faz o purge inclusive das dependências com o comando sudo apt-get autoremove --purge mplayer.
Desvantagens
  • Não possui interface gráfica;
  • Não procura pacotes dado um nome.
Aptitude
Vantagens
  • Facilidade de uso no terminal (basta substituir apt-get por aptitude);
  • Possui mais opções que o apt-get, como busca por programas (aptitude search);
  • Tem interface ncurses quando executado sem parâmetros. Uso básico:
    • "/" para pesquisar (aceita regex);
    • "n" move para o próximo resultado e "N" para o anterior;
    • "+" marca para instalar;
    • "-" marca para remover;
    • "_" marca para purge;
    • "u" atualiza a lista de pacotes;
    • "U" marca para atualizar todos os pacotes possíveis;
    •  "g" segue para as próximas etapas (primeiro mostra todos os pacotes a serem instalados, desinstalados e suas dependências e depois executa);
    • "q" para sair;
  • Sempre desinstala dependências não mais utilizadas;
  • Faz purge inclusive de dependências através de sudo aptitude purge --purge-unused mplayer.
Desvantagens
  • Substitui facilmente o apt-get, mas é necessário um pouco de tempo para aprender funcionalidades extras e se acostumar com a interface ncurses.
Conclusão
A remoção pelo Synaptics foi lamentável, pois deixou outros três programas instalados que não seriam utilizados por nenhum outro. O mesmo ocorre ao usar apt-get remove. Então sugiro nunca utilizar apt-get remove ou desinstalar programas pelo Synaptics. Se você é um usuário pouco experiente, fique com a interface amigável da "Central de Programas Ubuntu". Se você não quiser ficar com alguns arquivos de configuração de programas ao desinstalá-los, sugiro fazer a instalação pela "Central de Programas Ubuntu" e desinstalar ou por sudo apt-get autoremove --purge ou usando sudo aptitude purge --purge-unused. Para aqueles que gostam de saber o que de fato está acontecendo e desejam mais opções, vale a pena gastar um pouco de tempo aprendendo a usar a interface ncurses do aptitude (os comandos acima são os mais utilizados e há também menus na interface).

    2 comentários:

    Antonio Marcos disse...

    Muito boa análise, estava tentando remover um pacote quebrado, e usando o apt-get da forma que foi mencionada (purge) deu certo.

    Sebastião Relson disse...

    Curti a comparação, no entanto segue alguns esclarecimentos.
    Todos eles usam o apt, então pra procurar um pacote dado um nome/palavra chave é só utilizar o apt-cache search palavra-chave, já pra obter informações sobre um pacote que já se sabe o nome certo é só digitar apt-cache show nome_do_pacote.
    Outro comando importante é o dpkg que é usado pelo apt.