Linux: Entendendo a questão dos aplicativos

sábado, 17 de janeiro de 2009 ·

Por mais importante que seja, o sistema operacional é na verdade apenas um palco que serve como base para os atores principais, que são os aplicativos. Embora muito se discuta sobre as diferenças entre o Windows, o OSX e o Linux e as vantagens de cada um, no final das contas os argumentos mais efetivos a favor ou contra uma determinada plataforma se concentram nos aplicativos para ela. Sem aplicativos, o sistema operacional não passa de um conjunto de drivers e bibliotecas, sem qualquer utilidade. Ninguém usaria o Linux se não existissem bons programas disponíveis para ele.

A instalação de novos programas no Linux não é tão complicada como pode parecer à primeira vista. Pelo contrário, muitas vezes é até mais simples que no Windows, pois raramente você precisará perder tempo comprando e registrando o programa, retirando banners de propaganda, desativando spywares e coisas do gênero.

No Linux, temos uma predominância de aplicativos open-source, enquanto no Windows temos uma predominância de programas proprietários. O fato de um programa ter o código aberto não significa necessariamente que ele seja gratuito, mas a grande maioria é. O único custo relacionado a usar o Gimp, por exemplo, é o "custo" de baixar ou copiar o programa.

A princípio, pode parecer lógico que os programas proprietários tenham uma qualidade melhor, já que eles são desenvolvidos por equipes de programadores profissionais, que são pagos para trabalhar em tempo integral no software. Mas, na realidade, não é bem assim.

De uma forma geral, programas proprietários tendem a ser melhores em nichos e em áreas especializadas; um exemplo é o AutoCAD, que até hoje não tem um concorrente aberto à altura. Isso acontece porque estes programas de nicho são usados por uma fatia pequena dos usuários (o AutoCAD é usado apenas por engenheiros e assim por diante), que acaba não sendo suficiente para despertar o interesse de um grupo suficientemente grande de desenvolvedores.

Por outro lado, para programas de uso geral temos um cenário oposto. A base de usuários é muito grande e por isso os projetos prosperam, muitas vezes superando os aplicativos comerciais em qualidade. Veja o caso do Firefox x Internet Explorer, por exemplo.

Outro ponto a favor dos aplicativos abertos é o reaproveitamento de código. Um desenvolvedor pode começar do ponto onde um projeto anterior parou, trabalhando diretamente nos recursos que deseja adicionar, ao invés de ter de começar do zero. No mundo proprietário tudo é mais complicado, envolvendo licenciamento de componentes e assim por diante.

A grande oferta de aplicativos abertos acaba sendo uma grande vantagem no Linux, pois as distribuições já vêm com um grande número de programas pré-instalados e você pode instalar outros sem custo. No Windows temos um cenário oposto. O sistema inclui apenas alguns aplicativos básicos e depois de instalar o sistema, você ainda precisará adquirir softwares de terceiros para realizar tarefas mais elaboradas. A chance de a próxima versão do Windows já vir com o Photoshop e o Corel Draw, por exemplo, é muito remota.

Isso faz com que muitos (possivelmente a maioria) acabe recorrendo à pirataria, o que acaba gerando outros problemas. Mesmo deixando todo o aspecto legal e moral de lado, baixar e instalar programas piratas também tem seus desafios, já que é necessário procurar um crack, remover vírus e trojans antes de instalar e assim por diante. No caso do Linux, a instalação acaba sendo mais simples, já que você precisa apenas abrir o gerenciador de pacotes e instalar o pacote desejado.

A grande dificuldade não está na instalação propriamente dita, mas sim na dificuldade em encontrar softwares que substituam os que você utiliza no dia-a-dia. Conforme você se familiariza com um sistema, você constrói uma base mental de conhecimento, com aplicativos e soluções para problemas. Quando você quer editar imagens você usa o aplicativo X, quando quer baixar um arquivo via bittorrent usa o aplicativo Y, quando tem um problema com o som você executa Z e assim por diante.

Quando você resolve mudar para outra plataforma, grande parte dessa biblioteca mental é perdida, pois as dicas não se aplicam mais ao outro sistema. Isso faz com que a mudança acabe sendo muito mais penosa do que uma simples mudança de interface, já que você precisará substituir cada um dos aplicativos que utilizava na outra plataforma e lidar com um conjunto diferente de problemas. Isso não se aplica apenas ao migrar do Windows pra o Linux (ou vice-versa), mas também, embora em menor grau, ao migrar de uma distribuição Linux para outra.

Um bom indicativo disso é que, de uma forma geral, os usuários que encontram menos dificuldades em migrar do Windows para o Linux são justamente os mais iniciantes, que usam menos funções do sistema (muitas vezes apenas o navegador e o player de mídia) e que, por isso, não encontram dificuldades em substituí-los. No outro extremo, temos os usuários mais tarimbados, que, por estranho que possa parecer, são justamente os que encontram mais dificuldades, já que, por possuírem uma "biblioteca mental" maior, acabam tendo que encontrar substitutos para um volume muito maior de funções.

Nesse processo é importante mudar um pouco a mentalidade, não procurar programas "iguais" aos usados no Windows, mas sim pensar nas tarefas que você deseja realizar e procurar programas que ofereçam um conjunto de recursos o mais próximo possível do que você utiliza. O Office pode ser substituído pelo OpenOffice, o Photoshop pelo Gimp, o Corel pelo Inkscape, o Illustrator pelo Scribus, o IE pelo Firefox, o MSN pelo Pidgin ou pelo Kopete, o Outlook pelo Evolution, o Media Player pelo Toten, VLC, Mplayer ou Kaffeine, o Nero pelo K3B, o iTunes pelo Amarok, o WinAmp pelo XMMS e assim por diante.

É importante enfatizar também que no mundo Linux existem também aplicativos proprietários e aplicativos comercias. Alguns exemplos são o VMware Player, o Acrobat Reader, o Cedega, o Skype e jogos como o Quake 4 e Doom 3, que possuem versão Linux. É também possível rodar alguns aplicativos Windows através do Wine, mas quase sempre com pequenas falhas ou limitações diversas. Outra opção é usar uma máquina virtual, utilizando o VirtualBox ou o VMware para rodar uma cópia completa do Windows, instalando os aplicativos desejados sobre ela.

Muito se fala sobre o avanço dos sistemas de virtualização e dos aplicativos web. Dois bons exemplos disso são os webmails, que eliminaram quase que inteiramente o uso de leitores de e-mail dedicados, e o assustador crescimento do uso de virtualização em servidores, com destaque para o Cloud Computing, que nada mais é do que a combinação de duas idéias antigas: o uso de clusters (vários computadores interligados em rede, trabalhando como se fossem apenas um) e o uso de virtualização, para que este "super-servidor" rode várias máquinas virtuais, cada uma funcionando como se fosse um servidor separado.

Estas duas tecnologias eventualmente eliminarão o problema das diferenças entre plataformas, já que você poderá rodar qualquer software em qualquer computador, dentro do navegador ou em uma máquina virtual. Entretanto, esta é uma mudança que ainda vai demorar um pouco para ocorrer, de maneira que os aplicativos locais continuam em voga.

Chegamos então à questão da instalação de programas, que é outro tema de dúvidas. Para quem está chegando agora, a instalação de aplicativos no linux pode parecer algo incompreensível, uma vez que existem muitos procedimentos diferentes. De acordo com o aplicativo e a distribuição em uso, o procedimento pode ser incrivelmente simples, como abrir um gerenciador de programas e clicar no aplicativo desejado, ou incrivelmente complicado, envolvendo o download de compiladores, edição de arquivos de texto e comandos manuais. Vamos então a uma tentativa de colocar ordem na casa.

No começo existia o código fonte. Você baixava um pacote .tar.gz, contendo o código fonte do programa, e a instalação consistia em compilar e instalar os executáveis gerados na sua máquina. Esta forma de distribuição faz sentido em se tratando de aplicativos abertos, pois permite que você veja e até adapte o código fonte se necessário, para que ele rode na sua máquina. Em muitos casos, é possível instalar o programa em outro sistema operacional (a maior parte dos programas do Linux podem ser instalados no BSD, com pequenas adaptações) ou até mesmo em outras plataformas.

O problema é que instalar programas a partir dos fontes é demorado e nem sempre simples, já que você precisa ter instalado uma grande quantidade de compiladores e bibliotecas, necessários para compilar os mais diversos programas. Existem incontáveis pequenas bibliotecas e ferramentas de desenvolvimento por aí e não é muito viável tentar manter todas elas instaladas.

Compilar significa transformar o código fonte, escrito pelo programador, nos arquivos binários que são executados pelo sistema. Ao compilar um programa, são gerados vários executáveis, bibliotecas e arquivos de configuração, que são copiados para pastas específicas do sistema. Os executáveis vão para a pasta "/usr/bin", as bibliotecas para a "/usr/lib", os arquivos de configuração para o "/etc" e assim por diante.

Alguém chegou, então, a uma conclusão obvia: ao invés de cada um ter que ter o trabalho de compilar o programa na sua própria máquina, seria mais simples se alguém compilasse e distribuísse um arquivo pronto, com os componentes já compilados, em um formato simples de instalar. Nasceram, então, os pacotes pré-compilados.

Os pacotes são uma idéia muito simples. Você cria um arquivo compactado contendo a mesma estrutura de pastas e arquivos que seria criada ao instalar o programa manualmente. Ao instalar o pacote, os arquivos são descompactados no diretório raiz, fazendo com que todos os arquivos sejam colocados nos diretórios corretos. Ao desinstalar o pacote, os arquivos são removidos, deixando o sistema da forma como estava inicialmente. Uma forma rápida e limpa de instalar programas.

Existem basicamente três formatos de pacotes diferentes: os pacotes .deb, usados pelas distribuições derivadas do Debian (incluindo o Ubuntu, o Kubuntu e todas as inúmeras distribuições baseadas neles), os pacotes .rpm, usados pelas distribuições derivadas do Red Hat (Fedora, Mandriva e outros) e os pacotes .tgz, usados pelo Slackware e derivados. Não existe nada de fundamentalmente diferente entre os três formatos e é inclusive possível transformar um pacote .rpm em um pacote .deb, usando utilitários como o alien. Entretanto, devido às diferenças que existem entre uma distribuição e outra, não existe garantia de que um pacote do Fedora funcionará no Debian, por exemplo.

O próximo passo foi a criação dos gerenciadores de pacotes, programas que permitem baixar e instalar novos programas de forma automática, verificando as dependências e, caso necessário, baixar outros programas e bibliotecas de que o programa inicial precisa.

O primeiro que vem à mente é o apt-get, que é usado em um número assustador de distribuições. Para instalar o "pidgin", por exemplo, você precisaria apenas usar o:

# apt-get install pidgin

Existem ainda gerenciadores gráficos, como o Synaptic, que tornam a tarefa ainda mais amigável. Além do apt-get, outros exemplos de gerenciadores são o urpmi, usado no Mandriva, o yum, usado no Fedora e o zypper, usado no OpenSUSE.

Você pode perguntar por que não fazem como no Windows, onde cada programa tem seu instalador. Na verdade, muitos programas são distribuídos desta forma, como o Java, OpenOffice, Firefox, Thunderbird, VMware e diversos games. Nestes casos, você simplesmente executa o arquivo e o instalador se encarrega do resto da instalação.

O inconveniente é que estes pacotes são desenvolvidos para funcionarem em qualquer distribuição, por isso incluem todo tipo de bibliotecas e módulos de que o programa possa precisar, sem reaproveitar os componentes que você já tem instalados. Isso faz com que os pacotes sejam práticos de instalar, mas em compensação bem maiores (e mais pesados), assim como muitos dos programas do Windows.

Outra dificuldade é que não existe no Linux uma biblioteca gráfica padrão, que esteja disponível em qualquer distribuição. Ao usar um instalador gráfico que utilize a biblioteca QT (do KDE), por exemplo, usuários do Ubuntu e de outras distribuições onde ela não vem pré-instalada precisarão instalar um conjunto de pacotes adicionais antes de conseguirem abrir o instalador. Se usar um instalador baseado na biblioteca GTK, os usuários de distribuições baseados no KDE (onde o GTK geralmente não vem pré-instalado) é que terão dificuldades, e assim por diante.

Devido a isso, aplicativos comerciais como o VMware e também alguns drivers (como os drivers 3D da nVidia) utilizam instaladores em texto puro, de forma a poderem sem instalados sem dificuldades em qualquer distribuição.

Naturalmente, existem exceções, como no caso dos jogos que utilizam o instalador gráfico desenvolvido pela Loki, como o Quake 3, Unreal, Medal of Honour e outros. Caso esteja curioso, você pode baixar os instaladores e demos de muito jogos portados no http://darkstar.ist.utl.pt/pub/games/:

Estes instaladores quase sempre usam a extensão ".sh" e são fáceis de instalar, já que basta executar o arquivo no terminal para iniciar a instalação. Ao baixar o arquivo, ele sempre virá com a permissão de execução desmarcada, uma medida de segurança para prevenir acidentes com possíveis arquivos infectados com vírus e trojans. Apesar de parecer perda de tempo, esta é uma das medidas que mais contribui para a segurança geral do sistema em um desktop, pois você não corre o risco de executar um arquivo simplesmente por clicar por acidente em um link no navegador ou no leitor de e-mails: precisa realmente salvá-lo no HD, marcar a permissão de execução e finalmente executá-lo. Um vírus que se propagasse via e-mail encontraria um terreno muito menos fértil no Linux.

Para ativar a permissão de execução, use o comando "chmod +x", como em "chmod +x mohaa-lnx-1.11-beta3.run".

Muitos instaladores podem ser executados diretamente com seu login de usuário, desde que você instale o programa em uma pasta dentro do seu home. Outros realmente precisam ser executados como root. Você pode executar o programa diretamente pelo gerenciador de arquivos, clicando sobre ele, ou pelo terminal, usando o "./", como em "./mohaa-lnx-1.11-beta3.run".

Em resumo, podemos dizer que existem três formas de instalar programas no Linux:

1- Usar o apt-get ou outro gerenciador de pacotes para instalar pacotes próprios da distribuição em uso. Esta é a forma mais simples e menos passível de problemas, que você usa sempre que possível.

2- Programas com instaladores próprios, destinados a funcionar em várias distribuições. Eles também são simples de instalar, mas não tão simples quanto usar o apt-get. Muitos aplicativos proprietários são distribuídos apenas desta forma, como o VMware.

3- Instalar o programa a partir do código fonte, o que pode ser necessário no caso de aplicativos pouco comuns, que não estejam disponíveis de outra forma, e também no caso de muitos drivers, onde é necessário gerar um módulo personalizado para o kernel em uso.



Fonte: www.gdhpress.com.br/

0 comentários:

Receba Atualizações

RECEBA ATUALIZAÇÕES DO BLOG DIRETO NO SEU E-MAIL:

Delivered by FeedBurner

Twitter

Duvidas e Recados

Tradutor

Parceiros Top

Leitores