Programas podem ser instalados a partir de pacotes binários pré-compilados para sua distribuição/versão (oficiais ou de terceiros), compilação a partir do código-fonte, a partir de um SlackBuild ou ainda sim de um instalador binário (este quase sempre pertencendo a programas proprietários).
Conceitos:
Um pacote binário pré-compilado é um programa pronto para ser usado pelo sistema, bastando instalar.
Um código-fonte permite que você altere (se lhe interessar) compile e instale o programa.
Um instalador binário é um programa que fará a instalação quando executado.
Nota: Todo instalação de programa no sistema deverá ser efetivada pelo usuário “root”.
1 – Instalação a partir de pacote binário pré-compilado da sua distribuição/versão
Os pacotes pré-compilados são programas prontos para serem usados compactados, bastando instalá-los. Ex:
root@localhost# installpkg gimp-2.4-i486.tgz
Para remover, o procedimento é igualmente simples:
root@localhost# removepkg gimp-2.4-i486.tgz
Os pacotes podem ser oficiais, aqueles que acompanham os Cds de instalação do Slackware ou criados por terceiros (contribuições de usuários espalhados pelo mundo todo).
Deverá ser instalado um pacote compatível com sua distribuição e versão, sendo assim pacotes do Slackware 10 podem não funcionar bem no Slackware 12.
Os nomes dos pacotes seguem a seguinte síntese: programa-versão-arquitetura-compilação_e_autor.tgz
* programa: nome do programa em questão.
* versão: versão do solicitado programa
* arquitetura: arquitetura de sistema ao qual é destinado o pacote (geralmente i486 no Slackware)
* compilação_e_autor: número da compilação do programa e sigla do autor com 3 letras (usado apenas em pacotes de terceiros).
* tgz é o formato do pacote, na verdade não passa de um arquivo tarball comprimido em gunzip. Outras distribuições usam .deb, .rpm, etc.
O sistema de pacotes do Slackware é extremamente simples, sendo que não verifica pendências ao instalar um pacote. Pendência são outros programas necessários para a execução do programa principal. Como exemplo podemos citar o KDE que tem como uma de suas pendências a biblioteca QT. Caso haja pendências, estas devem ser verificadas junto a documentação que acompanha o código-fonte do programa ou no site do mesmo. Também pode-se ler a saída de erro ao tentar executar o programa num shell e interpretar qual a pendência necessária.
Um bom lugar para se procurar pacotes compilados de terceiros para Slackware é http://linuxpackages.net/.
Você pode administrar os pacotes pré-compilados também pela ferramenta pkgtool,a qual só o root tem acesso:
root@localhost# pkgtool
2- Compilação a partir do código-fonte
Uma instalação também pode ser feita a partir do código-fonte. Esta opção é viável se você não encontra o pacote binário pronto para sua distribuição/versão ou se prefere fazer uma instalação mais otimizada do programa em sua máquina: programas compilados tendem a ser mais rápidos pois são compilados conforme a arquitetura exata da máquina em que serão usados. Não espere um desempenho estrondoso, apenas ligeiramente mais rápido.
O primeiro passo é visitar o site do programa e baixar o código-fonte e descompactá-lo para a pasta /usr/src que, pelo padrão de diretórios Linux, é onde os códigos-fonte devem estar e ir até o diretório:
root@localhost# wget -c xmms-1.2.11.tar.gz
root@localhost# tar xvf xmms-1.2.11.tar.gz -C /usr/src
root@localhost# cd /usr/src/xmms-1.2.11
No diretório do código-fonte a instalação pode se resumir, genericamente, a: ./configure, make e make install.
root@localhost# ./configure
root@localhost# make
root@localhost# make install
E para desinstalar:
root@localhost# make uninstall
Este é o método rápido, você pode melhorar um pouco ele:
Antes do ./configure você pode definir as CFLAGS e as CXXFLAGS que garantirão um compilação otimizada do código-fonte (e portanto do programa) ao seu processador:
root@localhost# CHOST=”i686-pc-linux-gnu”
root@localhost# CFLAGS=”-march=i686 -O2 -pipe -fomit-frame-pointer”
root@localhost# CXXFLAGS=”${CFLAGS}”
Acima, após, o CHOST que identifica a arquitetura geral e sistema operacional, os parâmetros de CFLAGS definem que o código fonte terão uma otimização segura (-O0 é nula, -O1 é fraca e -O3 é absurda, podendo ser perigosa e causar travamentos durante a execução do programa) e voltados à máquinas de arquitetura i686 (processadores das famílias AMD k7 ou Intel Pentium Pro adiante). Eliminamos também o uso de frame pointer (-fomit-frame-pointer), que é desnecessário a maior parte do tempo. As CXXFLAGS serão iguais as CFLAGS.
Pode-se otimizar ainda mais sendo mais específico na arquitetura do processador no CFLAG: i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentiumpro, pentium2, pentium3, pentium4, k6, k6-2, k6-3, c3, athlon, athlon-tbird, athlon-xp, athlon-4, athlon-mp, k8, prescot, nocona, etc.
Um conjunto de CFLAGS e CXXFLAGAS detalhadas podem ser encontradas em http://wiki.archlinux.org/index.php/Safe_CFlags .
Durante o ./configure você pode definir alguns parâmetros para uma instalação mais refinada:
root@localhost# ./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
Isto faz os arquivos de logs irem para /var, os arquivos de configurações pata /etc e todos os outros para /usr, que são os lugares deles conforme a arquitetura de diretórios padrão Linux. Caso não seja especificados geralmente todos irão para o diretório /usr/local .
Leia sempre os arquivos INSTALL e README que acompanham o código-fonte, eles contém informações importantes como alguns parâmetros especiais que devem ser usados no ./configure dependendo do programa, ou senão use o help do próprio configure:
root@localhost# ./configure –help
Caso o comando ./configure falhe, leia a saída de erro e veja qual o problema, geralmente se trata de uma pendência de programa não satisfeita.
O passo seguinte é o comando make que, com base nas configurações passada pelo ./configure e armazenada no arquivo Makefile irá compilar o programa:
root@localhost# make
Caso você trabalhe com um processador de mais de um núcleo pode usar a opção -j3 para deixar a compilação mais rápida aproveitando melhor os vários núcleos:
root@localhost# make -j3
E, enfim, o comando make install que irá instalar o programa no sistema. Na verdade este é o único comando que deve ser necessariamente dado como root, todos os demais podem ser usados por um usuário normal, porém como estamos trabalhando dentro do diretório /usr/src apenas o root tem permissão de escrita nele.
root@localhost# make install
Ou para desistalar:
root@localhost# make uninstall
Algumas vezes o comando make uninstall não funciona, e isso é um problema, pois você não conseguirá desinstalar o programa de maneira eficiente. Isso ocorre porque nem sempre as pessoas seguem a padronização dos comando de instalação e desinstalação nos programas que fazem, o ideal é usar um pacote pré-compilado ou compilar seu próprio pacote, que se necessário poderá ser removido.
Caso deseja fazer uma nova compilação deve primeiro limpar os resquícios e configurações da compilação anterior:
root@localhost# make clean
Vários programas contém instruções e procedimentos de instalação diferentes estes padrão, portanto sempre leia o README e o INSTALL. Se não resolver, procure a página do desenvolvedor e leia a documentação on-line. Desenvolvedores de programas open-source TEM interesse que as pessoas usem seus programas, portanto sempre informam como instalar e usar o programa.
3 - Os SlackBuilds
SlackBuilds são scrirpt de shell que automatizam a compilação de um programa e criação de um pacote binário do mesmo. O próprio Patrick Volkerding foi quem desenvolveu o sistema para ajudar na compilação de todos os pacotes da distribuição. Para usar um SlackBuild você deve colocar o script junto com o código-fonte do programa, realizar qualquer alteração necessária no script como verificar se a versão do código-fonte bate com a do script e então executar o script. Em pouco tempo um pacote do programa estará disponível no diretório /tmp pronto para instalação.
No site Slackbuilds.org ( http://www.slackbuilds.org/ ) há um FAQ que descreve de maneira simples o uso dos SlackBuilds que traduzi logo abaixo:
Passo 1 – Download Baixe o arquivo de SlackBuild da aplicação que deseja compilar e extraia-o no seu diretório de trabalho. Por exemplo, depois de extrair o arquivo chemtool.tar.gz, você deverá ter a seguinte árvore de diretórios:
./chemtool
|– README
|– chemtool.info
|– chemtool.SlackBuild
|– chemtool.desktop
|– chemtool.png
|– slack-desc
O acesso anônimo por FTP está disponível em ftp://ftp.slackbuilds.org se lhe for mais conveniente.
Depois, baixe o código-fonte da aplicação do endereço listado no arquivo chemtool.info e coloque-o no diretório chemtool com os demais arquivos. Há também um link direto para o arquivo tarball do programa a partir do repositório do slackbuild.org.
Passo 2 – Edite o SlackBuild se necessário
Se a versão do chemtool é mais recente que a especificada no script de SlackBuild, você deverá corrigí-la de acordo. Usando seu editor preferido, abra o script chemtool.SlackBuild e encontre a linha que comece com “VERSION”
VERSION=1.6.7
Mude-a de acordo com a versão atual do fonte do chemtool.
Se alguma versão nova de aplicação não for compilada corretamente apenas com a troca da string “VERSION”, avise ao pessoal da SlackBuild.org (em inglês) pelo link http://www.slackbuild.org/bugs/.
Passo 3 – Execute, como root, o script de SlackBuild
Torne o script executável com o chmod e execute-o:
root@localhost# chmod +x chemtool.SlackBuild
root@localhost# ./chemtool.SlackBuild
Passo 4 – Instale o pacote
Assumindo que tudo correu de acordo com o plano (a compilação terminou sem erros), o pacote pronto deverá estar no diretório declarado na string “OUTPUT” no script SlackBuild (o padrão é o diretório /tmp ). Use installpkg para instalá-lo; provavelmente você moverá o pacote para algum lugar seguro para guardá-lo depois de instalado.
Você pode criar o seu próprio SlackBuild se achar interessante, segue abaixo um link do SlackWiki repleto de instruções: http://www.slackwiki.org/Writing_A_SlackBuild_Script.
4 – Instalador binário
Algumas aplicações, na maioria proprietárias, tem um instalador binário, tal como drivers da Nvidia, Google Earth, etc. Basta executar o instalador como root e seguir as instruções em tela:
root@localhost# ./programa-x.bin
Qualquer dúvida ou problema vale visitar a página do programa e dar uma olhada nas instruções disponíveis.