# Linux para iniciantes/Instalando programas

e issMacOS, dificilmente um programa para Linux é adquirido comprando-se na loja, ou instalando em sites externos, como o Tucows, o C-Net, e os brasileiros Baixaki e Superdownloads. A maioria dos programas em geral também é de código aberto e está disponível no que se chamam de repositórios oficiais. Cada distribuição tem uma lista de repositórios oficiais, e por isso um programador, quando vai soltar um programa para Linux, procura enviar para os repositórios das distribuições mais usadas. Distribuições populares como o Ubuntu, o Fedora e o Mandriva têm mais de 11 mil programas em seus repositórios oficiais, e por isso raramente um usuário terá problemas para achar um programa para suas necessidades, e muitas vezes mais de um, já que programadores independentes também enviam aplicativos para os repositórios oficiais.
A instalação de programas, normalmente, deve ser feita pela conta do superusuário (root). As formas de instalar o programa variam da mais simples (do ponto de vista do usuário) à mais complicada, e normalmente o que uma instalação mais complicada faz é automatizar o que a instalação mais simples faz.
As formas, ordenadas da mais complicada (do ponto de vista do usuário) para a mais simples são:
* baixar o código fonte do programa desejado, compilar, linkar e instalar. Normalmente funciona, mas exige conhecimentos de programação.
* baixar o pacote compactado do programa, descompactar, e executar a sequência ./configure; make; make install (um comando de cada vez, observando erros e avisos). Muitas vezes aqui ocorrem erros chamados de dependency hell: isto acontece quando, na configuração, são exigidas atualizações de outros pacotes
* baixar um pacote especial chamado rpm, e instalar usando um comando específico (o comando é rpm). Aqui também pode ocorrer o dependency hell
* utilizar gerenciadores de pacotes rpm, que fazem o teste das dependências. Normalmente, as dependências conseguem ser resolvidas
* utilizar algum aplicativo gráfico específico da distribuição. Estes aplicativos gráficos normalmente são acessíveis a partir do menu gráfico, mas exigem que se entre com a senha do superusuário (root).

### Instalação a partir do código fonte

Esta opção é para quem conhece muito as linguagens de programação. Algumas exceções são códigos simples, normalmente um único arquivo, que pode ser baixado, instalado e já executado: um exemplo é o programa youtube-dl, que faz o download de vídeos do Youtube, e que é um arquivo python.

### Instalação a partir de pacotes compactados

Estes pacotes normalmente são distribuídos em arquivos de extensão .tar.gz ou .tar.bz2.
tar vem de tape archive, e o nome tape mostra que esse formato é da idade em que se gravava backup em fitas magnéticas.
gz e bz2 são programas que comprimem de forma lossless, usando algoritmos semelhantes ao LZW.
Os arquivos devem ser descompactados e, em vez de serem instalados, serem compilados através de linhas de comando. Nesse caso, necessariamente o fabricante colocará as instruções de instalação, pois pode variar drasticamente de um programa para outro.

### Instalação a partir do rpm ou deb

    Ver módulo principal: Guia foca Linux/Iniciante+Intermediário/Comandos diversos/rpm
rpm é o pacote da distribuição Red Hat, e utilizado por várias outras distribuições. As distribuições baseadas no Debian, como é o caso do Ubuntu e do Kurumin, usam a extensão .deb.
A instalação é feita baixando-se o rpm (ou deb) desejado, e comandando-se (no caso do rpm) rpm <opções> pacote.
Note-se que muitas vezes isso gera um dependency hell, tornando-se necessário baixar e instalar vários outros rpms antes do rpm desejado. Para evitar este trabalho, existem os gerenciadores de rpm, o próximo tópico.
Para mais detalhes, ver a documentação do programa rpm na wikipedia ou no livro Guia foca Linux.

### Instalação a partir de gerenciadores de rpm (ou deb)

São programas, chamados a partir da linha de comando, que verificam todos os rpms necessários (testando as dependências), e baixam e instalam todos.
Conforme a distribuição, temos:
* Apt (chamado por apt-get) nas distribuições Debian, Ubuntu, Kurumin, etc
* Yum, na distribuição Fedora
* Urpmi, nas distribuições Mandriva e Caixa Mágica
Um detalhe importante é que, para estes programas funcionarem adequadamente, ou seja, consigam achar tudo que é necessário, é preciso manter em alguma base de dados local a lista completa dos sites que podem atualizar. Por exemplo, para o Mandriva, a dica está em http://easyurpmi.zarb.org/ .

### Instalação a partir de gerenciadores de rpm com interface gráfica (GUI)

Conforme a distribuição, temos:
* synaptic e "Adept Manager", nas distribuições Debian, Ubuntu, Kurumin, etc
* PackageKit, Pirut, Pup, Yumex e KYum, na distribuição Fedora
* Rpmdrake, na distribuição Mandriva
* Synaptic, na distribuição Caixa Mágica
O Slackware não têm ferramentas gráficas para instalação, e por isso tudo é feito através de linha de comando.
Estas interfaces costumam ser bem simples de se usar.
Por exemplo, no Mandriva Linux, para se instalar um programa a partir do KDE, deve-se acessar o menu K e escolher a opção: "Instalar & Remover Software". Aparecerá uma caixa de diálogo solicitando a senha de root (superusuário) e a janela do Gerenciador de Software, dividido por categorias - o usuário nem precisa saber que está rodando o rpmdrake. Há no topo da janela uma caixa de busca, onde se pode escolher o programa pelo nome, pela descrição, pelo sumário ou pelos arquivos. A maioria dos sumários está em inglês.

## Quando o programa procurado não está no repositório

Em alguns casos, pode acontecer que você esteja procurando um programa que não se encontra nos repositórios oficiais da sua distribuição. Em geral, a empresa que desenvolveu o programa deixa em sua página oficial os arquivos de instalação do programa, bem como as instruções para instalar. Você pode atualizar os repositórios na central de programas do linux.

## Instalando programas originalmente escritos para Windows

Excepcionalmente, pode acontecer que você precise de um programa que só rode no Windows, sem versões equivalentes para Linux. Exemplos de programas incluem o Adobe Flash, para produzir animações Flash, e o Minitab, que é um software de controle estatístico, embora atualmente com o movimento da Web 2.0 alguns desses recursos estejam disponíveis como aplicações web.
Felizmente, o Linux é um sistema flexível a ponto de ter suporte para esses programas, através de uma camada chamada Wine, que deve ser instalada à parte. O Wine é uma espécie de um emulador - apesar do nome (Wine é a sigla recursiva para "Wine is not emulator", literalmente "Wine não é emulador") que traduz as DLLs do Windows em instruções para Linux. O Wine é um programa comum. Para instalá-lo no Mandriva Linux, você deve acessar o gerenciador de programas e procurar pelo nome "Wine", aí basta selecionar e prosseguir a instalação. No Ubuntu, pode-se dar o comando: sudo apt-get install wine, e logo depois digitar a senha. Todos os arquivos com a extensão .EXE passarão a ser abertos através do Wine.
Em alguns casos, porém, o programa tem uma estrutura complexa a ponto de ser impossível emular através do Wine - caso, por exemplo, do editor de imagens Corel PhotoImpact e do simulador logístico Arena. A solução para isso está no que se chama virtualização. Nesse caso, você não estará emulando um sistema operacional, mas sim literalmente instalando o Windows dentro do Linux, através de um software chamado VMWare Player, que cria uma "máquina virtual". O VMWare Player não é um software livre, e por isso deve ser instalado à parte. Para criar a máquina virtual, você pode acessar o site: http://www.easyvmx.com (em inglês), onde você poderá especificar o tamanho da memória a ser usada e o espaço em disco reservado para o "disco virtual". Aí, você terá de instalar o Windows dentro da máquina virtual.
Se você tiver comprado o computador já com o CD de instalação do Windows, então você já tem uma licença do Windows; caso contrário, você deverá comprar uma. Não há necessidade de comprar as versões mais avançadas: como o que interessa é apenas rodar os aplicativos escritos para Windows, o Windows Vista Home Basic ou o XP Home já são suficientes.
A vantagem da máquina virtual é que os aplicativos do Windows funcionam com certeza, sem qualquer bug. A desvantagem é que, como um sistema está funcionando dentro de outro, pode haver lentidão em alguns processos. Por isso aconselhamos que a virtualização seja usada apenas em último caso, se o software instalado de fato não funcionar no Wine.
No caso de jogos mais modernos para Windows, existe um emulador para Linux chamado Cedega, que tem a vantagem da aceleração 3D. Porém, esse emulador não é software livre, e deve ser comprado. Algumas distribuições têm versões comerciais, que têm esses emuladores pré-instalados. Quando o jogo é mais antigo e roda no MS-DOS - caso das primeiras edições do Doom, Heretic, Quake, Mortal Kombat, entre outros - pode-se usar o emulador livre DOSBox, disponível nos repositórios, que rodará esses jogos em geral sem problema algum.

## Programas específicos

* Java

## Referências

* ↑ Instalar através da linha de comandos, na wiki do Linux Caixa Mágica
* ↑ Instalar software pelo Gestor de Pacotes Synaptic, na wiki do Linux Caixa Mágica