Formas de instalação de software em Linux

novembro 30, 2007

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!

Anúncios

@dvogado.com aprovado no java.net!

novembro 28, 2007

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

Caros amigos, já comentei aqui anteriormente que no meu tempo vago desenvolvo um software para advogados. Este projeto é open source e está em desenvolvimento, ainda não tendo nenhuma release.Algumas semanas atrás eu cadastrei o projeto no java.net, e hoje recebi o e-mail me informando que ele foi aprovado lá! O projeto está oficialmente incubado no java.net. A home do projeto lá é https://advogadocom.dev.java.net/

Os detalhes do projeto podem ser vistos na página do java.net, mas a arquiteturá básica terá Apache Tomcat 6.0.x + Apache Derby 10.x + Java RE 6 + Apache Wicket como framework web.

Quando tiver mais novidades do projeto, voltarei a postar aqui! 🙂


Google Hosted Apps

novembro 28, 2007

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

Muitas empresas mantêm uma infra-estrutura própria de e-mail, calendário, contatos, etc e gastam esforço e dinheiro com isso. Uma alternativa bastante interessante hoje em dia é usar a estrutura do Google Hosted Apps.Eu fui conhecer este recurso oferecido pelo Google há pouco mais de 1 ano, quando a Concrete deixou de utilizar uma infra-estrutura própria para utilizar os serviços do Google Hosted Apps na modalidade gratuita. Com uma qualidade de serviço excepcional, a Concrete conseguiu se livrar do esforço de manutenção da infra-estrutura e pôde focar estes esforços em coisas mais estratégicas para a empresa. E desde que houve esta migração, não houve ainda nenhuma ocasião em que qualquer dos serviços oferecidos pelo Google estivesse indisponível quando eu tenha acessado.

Se for do interesse da empresa, os recursos da versão gratuita podem ser expandidos para os da versão comercial, e aí vem uma liberdade de configuração e personalização maior, e um suporte com SLA ainda maior. Portanto, se a sua empresa ainda se esforça para manter uma infra-estrutura própria destes serviços e julga que isto não é estratégico para a empresa, invista melhor seus recursos pessoais e financeiros em outra coisa mais importante.

Deixe o Google cuidar do seu e-mail que você não vai se arrepender!


Distrowatch

novembro 28, 2007

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

Para quem ainda não conhece, aqui vai a dica de um site muito legal sobre Linux. O Distrowatch é um site que agrega informações sobre inúmeras distribuições Linux, incluindo todas as mais populares até algumas totalmente desconhecidas.Para os interessados em conhecer mais sobre Linux e suas principais distribuições, este site é um bom ponto de partida. Ele possui uma página para cada distribuição, informando o ambiente gráfico, notícias de lançamento de versões, análises da distribuição que tenham sido publicadas, screenshots, versões dos diferentes softwares, e muito mais coisa.

Eu já uso Linux em casa desde 2003, e já instalei uma boa quantidade de distribuições. Já há cerca de 1 ano eu uso o Kubuntu (gosto muito mais do KDE do que do Gnome), mas já usei Conectiva, Red Hat, Knoppix, Mandrake, Suse e instalei até o Solaris 10 (mas este só durou um dia, impossível usar aquele Java Desktop System pesadíssimo).

As preferências por distribuições variam muito de uma pessoa pra outra, mas atualmente eu recomendo utilizar ou o Kubuntu ou o Ubuntu. A diferença entre os 2 é que o primeiro usa o KDE e o segundo usa o Gnome como interface gráfica. Eu particularmente prefiro muito o KDE, mas várias pessoas gostam do Gnome também.

Quem estiver interessado em começar a usar e quiser umas dicas, estamos aí pra ajudar!


Novo companheiro na equipe

novembro 27, 2007

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

Recentemente alguns novos companheiros estão se juntando à equipe. Ontem registramos a chegada de mais um membro, o Aedes, apelidado carinhosamente de “Dengoso”. Segue a foto do companheiro Aedes! Cliquem na foto para zoomDengoso


Caminho prático de São Paulo até Miami by Google Maps

novembro 27, 2007

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

O Silvano me passou algo muito interessante que pode ser visto no Google Maps. Nestes tempos do caos aéreo, com uma tremenda dificuldade para se embarcar, aeroportos lotados e pouco seguros, aqui vai uma dica para quem quer passar o final de ano em Miami. Vejam aqui como é prático! Pra quem está querendo emagrecer um pouco como eu, a instrução 36 é perfeita, você consegue chegar em Miami sem o caos aéreo e ainda por cima entrando em forma 🙂


REST e AtomPub

novembro 26, 2007

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

Este fim de semana estudei mais um pouco de REST e Atom. O Atom Publishing Protocol é um protocolo de publicação de posts e feeds de blogs, que utiliza publicações no formato Atom (uma alternativa mais nova e mais rica do que o RSS)O motivo que me levou a estudar o Atom e o AtomPub é que o AtomPub está começando a ser usado como “implementação de referência” de web services REST. Não é que o protocolo do AtomPub em si seja voltado para web services em geral, mas ele é uma implementação muito inteligente e eficiente de web services REST para publicação em blogs, e então as idéias aplicadas para este tipo de aplicação estão começando a ser utilizadas de uma forma mais geral.

Embora não seja a mesma coisa, de certa forma podemos dizer que o AtomPub está para os web services REST assim como um framework como o Struts está para o desenvolvimento web. A comparação não é tão boa porque o AtomPub ainda é mais uma “inspiração” de implementação, um exemplo bem-sucedido de web services REST, enquanto o Struts é um framework para desenvolvimento web, no qual muitas aplicações estão baseadas e foram construídas por cima.

O AtomPub chega em ótimo momento, pois os web services REST vêm se firmando como uma ótima opção de implementação em boa parte dos casos, comparando com SOAP. Entretanto, REST é apenas um estilo de arquitetura, que permite uma enorme flexibilidade em termos de implementação. Como as idéias propostas pela arquitetura REST são abstratas em alguns aspectos, analisar como o AtomPub foi implementado é muito interessante e esclarecedor.

Um projeto open source que oferece uma API para criar, editar, ler e remover posts e feeds no formato Atom utilizando o Atom Publishing Protocol é o Apache Abdera. Este projeto ainda está incubado na Apache e ainda não está nem em beta, mas as releases atuais de desenvolvimento já permitem fazer algumas coisas interessantes e o projeto promete crescer, pois o Mule já está o utilizando como componente para implementação de web services REST no ESB deles.

Eu já consegui fazer uns exemplos legais com o Abdera, publicando através da API deles uns posts no blogger do Google e criando eventos no Google Calendar. Ainda estou estudando e conhecendo melhor o AtomPub, e o Abdera, mas tenho certeza de que veremos coisas boas daí, e penso que este é o caminho mais promissor de web services atualmente. Can’t wait to get to know it even better!

Quando souber de mais coisas interessantes nesse assunto, publicarei aqui!