Formas de instalação de software em Linux

Atenção, este blog foi migrado para: http://brunopereira.org

Uma das principais diferenças no uso do Linux em relação ao Windows é a maneira de se instalar softwares no primeiro. Como muitas pessoas próximas a mim estão começando a usar Linux, resolvi dedicar um tempo para explicar de forma clara as principais coisas a se saber sobre isto no mesmo.No Windows todos estão acostumados ao famosíssimo Install Shield, que após a tradicional seqüência de Next -> Next -> Next deixa as aplicações prontas para utilização. No Linux, embora até exista o Install Anywhere (http://www.macrovision.com/products/installation/installanywhere.htm?link_id=rightnav), irmão do Install Shield, ele definitivamente não é muito popular, e portanto não entrarei em maiores detalhes sobre o mesmo.

Começarei então a falar sobre as formas clássicas de instalação de software no Linux.

Old School/Advanced

Esta forma era a mais comum inicialmente, e ainda é utilizada por algumas pessoas, principalmente quando se deseja instalar o software de forma otimizada para o hardware específico no qual ele irá rodar. Esta forma consiste em obter o código fonte da aplicação e executar os 3 passos mágicos:
./configure
make
make install

Isto respectivamente irá gerar um makefile para a aplicação, realizar o processo de construção(build) da aplicação e realizar os passos necessários para a efetiva instalação do software. Este processo otimiza a instalação da aplicação para o hardware específico da máquina, pois o compilador consegue identificar as propriedades do hardware e efetuar algumas otimizações baseadas na arquitetura do mesmo. Instalar desta forma é recomendado quando você quer otimizar a execução de uma aplicação ou serviço específico, como um servidor de banco de dados ou o Apache por exemplo. Conheço um cara da Globo(um tal de Coró… hehehehe) que usa a distribuição Gentoo, que instala TODOS os softwares compilando e construindo as aplicações de forma otimizada. Isso é purismo demais para mim, prefiro formas mais fáceis🙂

Arquivo shell auto-suficiente

Uma outra forma de instalar softwares no Linux é com o uso de um instalador em formato shell (.sh). Tipicamente este arquivo conterá nele mesmo tudo o que ele precisa para instalar a aplicação. Uma execução simples do arquivo normalmente instala o programa perguntando algumas informações como local de instalação e uma ou outra opção de configuração. Entretanto, não é raro encontrar instaladores que ao serem executados fazem tudo sozinhos (a não ser que você mande-o fazer diferente) e instalam o software com opções padrão. Esta forma de instalação é quase sempre oferecida por aplicações que suportem múltiplos formatos de instalação, pois esta forma atende a qualquer versão de Linux.

Instalação através de gerenciadores de pacotes (package managers)

Esta é sem dúvida a forma mais fácil e recomendada de instalar a grande maioria dos softwares no Linux. Uma das coisas mais importantes que um novo usuário Linux deve aprender é como funciona o gerenciamento de pacotes. Existem 2 formatos principais de pacotes, os rpms e os debs (arquivos .rpm e .deb). A maioria das distribuições escolhe um destes 2 formatos para adotar como padrão, e acredito que a adoção de ambos seja parecida, sem haver um predominante.

O gerenciamento de pacotes no Linux armazena uma lista de fontes de pacotes. Esta lista contém repositórios de pacotes no quais poderão ser obtidos os instaladores das aplicações já no formato que a sua distribuição específica adotar como padrão. As distribuições derivadas do Debian (como Ubuntu e Kubuntu) guardam a lista de repositórios de pacotes no arquivo /etc/apt/sources.list. Não sei dizer onde ficam guardadas as listas de repositórios de rpm nas distribuições que utilizam este formato como padrão, mas geralmente as distribuições oferecem uma interface gráfica para gerenciamento destas listas de repositórios, então não é nada muito complicado de se acessar.

Para conseguir instalar uma determinada aplicação através do gerenciador de pacotes, você precisa basicamente saber se o pacote que você deseja instalar está contido nos repositórios cadastrados e então solicitar a instalação do pacote específico. Como exemplo, o comando que solicita a instalação do firefox no Kubuntu/Ubuntu é “sudo apt-get install firefox”. Caso o pacote do firefox por acaso não estivesse presente em nenhum dos repositórios cadastrados, seria exibida uma mensagem de falha na instalação com a descrição “no installation candidate for firefox”.

Além de instalar através dos repositórios cadastrados é possível instalar pacotes obtidos individualmente também. Você pode ter obtido diretamente o arquivo .deb ou .rpm da aplicação que deseja instalar, e aí você pode instalar diretamente a partir deste pacote obtido, em vez de baixar arquivos do gerenciador de pacotes. Para instalar diretamente um pacote .deb, você faz dpkg –install nome_pacote.deb. Para instalar diretamente um pacote .rpm você faz rpm –install nome_pacote.rpm.

Instalando as aplicações através do gerenciador de pacotes, você consegue remover e atualizar as aplicações pelo gerenciador, e então as instalações ficam sob controle centralizado e a manutenção do sistema fica mais fácil e padronizada.

Embora saiba que não ofereci nem de longe uma referência completa deste amplo tema, espero ter sido capaz de esclarecer um pouco do processo de instalação de softwares no Linux para usuários novos. Caso eu tenha deixado algum ponto mal explicado ou vocês desejem trocar alguma idéia a respeito disso, não hesitem em entrar em contato!

5 respostas para Formas de instalação de software em Linux

  1. Silvano disse:

    Bruno,

    2 coisas que julgo importante:
    1. No subtópico “Old School/Advanced”, compilar o código com ./configure e make não necessáriamente gera um código mais otimizado para a máquina. Na maioria das vezes não gera. Se quiser otimizar o código para sua máquina, seja ela pentium 4, athlon, etc… vc precisa informar isto para o compilador, gcc em geral. Para isto basta digitar na linha de comando, antes do ./configure:
    export CFLAGS=”-march=pentium4 -fomit-frame-pointer -O3″
    Isto vai permitir o compilador utilizar um conjunto de instrução mais adequado para o seu processador, mas pode deixar o executável incompatível com outros processadores da mesma arquitetura. Para conseguir o máximo da aplicação, consulte a documentação do gcc e os parâmetros de compilação possiveis de acordo com os recursos do seu processador (como mmx, sse3 etc…)

    2. Em “Arquivo shell auto-suficiente”, vai uma dica: muitas vezes o instalador pode não executar pois está sem permissão de execução, isto acontece principalmente quando se baixa uma aplicação através do browser. Para dar permissão de execução a um arquivo digite na linha de comando:
    chmod 755 NOME_DO_ARQUIVO
    Daí “./NOME_DO_ARQUIVO” deve funcionar!😉

    abs

  2. blpsilva disse:

    Opa, boas observações Silvano. Repare que no meu post do DBVisualizer eu mencionei explicitamente a questão das permissões de execução, portanto concordo contigo que é importante lembrar disso. Vou editar o post em breve para que ele fique mais preciso.

    Quanto ao lance do compilador, vc é o guru! Eu acredito que em boa parte dos casos a compilação na máquina gere uma instalação tão boa ou melhor do que se você já obtiver os binários pré-compilados, mas realmente para a otimização extrema, é preciso especificar bem para o compilador, o que pouca gente sabe fazer (eu sou um dos que não sabe! hehehehe).

  3. Silvano disse:

    Aí que tá… compilar na máquina não gera nada diferente do que baixar os binários. Na prática a compilação tradicional compila para arquitetura i386 e roda em qualquer maquina padrão intel i386🙂, o mesmo que é feito na compilação genérica. Se quiser gerar um código um pouco mais otimizado, só passandos os flags… e são muitos, mas nem sempre utilizar todos dá a melhor perfomance. Depende de cada caso. Eu já fiz diversos testes com eles. Os flags que escrevi, são os que geram desempenho melhor em praticamente todos os casos.

  4. […] instalar na internet, baixar o instalador e Next -> Next -> Next. No Linux isto é diferente, como já falei previamente. As pessoas estranham inicialmente o conceito de repositórios de pacotes, mas isso na verdade […]

  5. andre carlos disse:

    putaquepariu, gostaria muito de utilizar o linux, mas porra… é muito trabalho para instalar programas, já tentei ler uns trocentos sites que ensinam e naum conseguir….
    o linux que eu uso (tentei usar) não conseguir nem se quer instalar minha internet wifi, não conseguir rodar nenhum vídeo, não consegui instalar nenhum programa se quer…

    apelo aqui para alguém desenvolver um linux que execute altomaticamente os programas de instalações, como é feito no linux, pow.. se que não é impossível, todos dizem que o android é linux, e até nele conseguimos instalar os app’s clicando nos programas apk’s…. sem nenhuma complicação!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: