whathaveidone

Linux, Bioquimica, Jantaradas, Profissionalismo e um cafezinho
 
InícioFAQBuscarRegistrar-seMembrosGruposConectar-se

Compartilhe | 
 

 Instalar a partir de código fonte (tar.gz, tar.bz2, etc)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
JoaoRodrigues
Caneco


Mensagens : 130
Data de inscrição : 17/11/2007

MensagemAssunto: Instalar a partir de código fonte (tar.gz, tar.bz2, etc)   Dom Mar 30, 2008 9:15 pm

Instalar a partir do código-fonte em Ubuntu

"" Ena pá, um programa tão fixe! Vou instalar já isto no meu Ubuntu... """

<Abrir o Synaptic, procurar...>

"" Oi... então? Não há? Bem, vou ver no site.. AH, tá aqui, ficheiro programafixe.tar.bz2 para Linux ""

<Abrir o Ark, ou outro programa para abrir pastas compactadas>

"" Ui.. agora que abri isto com o arquivador... tanto ficheiro... """





Pois é. Em Linux, mesmo em Ubuntu, há-de vir a altura em que vamos que chafurdar na consola para instalar um programa.
Configure, make, make install. Estas 3 "expressões" vão entrar no vosso vocabulário tal como login, password e enter já lá estão.
Ao fim de contas, são os 3 únicos comandos que é preciso invocar na consola para instalar um programa. Claro, não vamos ficar com ícones no menu das Aplicações,
nem no Desktop, mas, vamos ficar com o programa instalado e a funcionar. No que espero ser em meia página A4, vou dar um exemplo de como instalar um programa em Linux
a partir do código fonte, utilizando como teste o nosso bem amado XMMS.




1) O primeiro passo lógico é abrir a consola/terminal. Aplicações-->Acessórios--->Terminal.

2) Depois, navegamos até à pasta onde está o ficheiro compactado. No meu caso é o Desktop e o ficheiro é o xmms-1.2.11.tar.gz

3) Extraimos o ficheiro: [code=bash]$ tar -xf xmms-1.2.11.tar.gz[/code]

4) Entramos na pasta criada: [code=bash]$ cd xmms-1.2.11/[/code]

Agora, se listarmos os conteudos, vamos ver algo deste género:

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ ls
ABOUT-NLS config.guess configure.in General libxmms NEWS Visualization xmms-config.in
acinclude.m4 config.h.in COPYING Input ltmain.sh Output wmxmms xmms.m4
aclocal.m4 config.rpath depcomp INSTALL Makefile.am po wmxmms.1.in xmms.spec
AUTHORS config.sub Effect install-sh Makefile.in README xmms xmms.spec.in
ChangeLog configure FAQ intl missing TODO xmms.1.in
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Podemos sempre abrir os ficheiros INSTALL e o README para termos algumas ajudas. De facto, aconselho a lerem. Basicamente vão-vos falar de dependências e do trio
maravilha que eu falei em cima: configure, make, make install. E com isto, veio uma palavra nova: dependências. O que é isso? A melhor maneira de perceberem, é digitarem
o comando configure na consola, de modo a começarem a construir um ficheiro de configuração adequado ao vosso pc.

5) [code=bash]$ ./configure[/code]

Vejam o que acontece no meu terminal:

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
[...... MUITAS LINHAS PARECIDAS COM ESTAS .......]
[...... MUITAS LINHAS PARECIDAS COM ESTAS .......]
[...... MUITAS LINHAS PARECIDAS COM ESTAS .......]
checking for pthread.h... yes
checking for glib-config... no
checking for GLIB - version >= 1.2.2... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error: *** GLIB >= 1.2.2 not installed - please install first ***
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Ups.. Como vêem, o configure vai verificar se a vossa máquina tem todas a bibliotecas, ficheiros e módulos adequados à instalação do programa. "Hey, mas eu no Synaptic não faço nada disso!". Pois, não fazes porque os pacotes já tratam automaticamente das dependências Smile O que são então as dependências? São tudo o que é preciso, a nível de software, drivers, etc, para que o programa X seja instalado no vosso computador. Ora, como é de esperar, vocês não têm TUDO no vosso disco. Daí, há-de haver um ou outro configure que falhe, tal como o meu falhou, por falta de uma dependência. Mas, nada de mal. Vamos simplesmente ter que instalar essa dependência. Como? Vamos usar o synaptic, for simplicity's sake! Eu, prefiro usar o aptitude, da linha de comandos. Mais l33t.. mas mais simples. O pacote que nos falta é portanto algo que tem com GLIB 1.22. Vamos a ver então o que há nos repositórios:

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ sudo aptitude search glib1.2
c libglib1.2 - The GLib library of C routines
p libglib1.2-dbg - The GLib library of C routines (debug)
p libglib1.2-dev - The GLib library of C routines (development) [/code]

Ena pá! Alguma coisa. Vamos então instalar isto:

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ sudo aptitude install libglib1.2
[Muito output depois...]
Initializing package states... Done
Writing extended state information... Done
Building tag database... Done
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Vamos lá então fazer de novo o configure:

[code=bash][ BLA BLA BLA ]
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error: *** GLIB >= 1.2.2 not installed - please install first ***
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Então? Mas eu já instalei! Que raio.. Pois. Não me perguntem pormenores técnicos, mas habitualmente precisamos de instalar os pacotes de desenvolvimento das bibliotecas e afins. No nosso caso, interessa-nos o pacote:

[code=bash]p libglib1.2-dev - The GLib library of C routines (development) [/code]

Vamos lá ver se depois de instalado isto já funciona:

[code=bash][ Depois de um sudo aptitude install e de um muitas linhas do configure ]
checking for pthread.h... yes
checking for glib-config... /usr/bin/glib-config
checking for GLIB - version >= 1.2.2... yes
checking for gtk-config... no
checking for GTK - version >= 1.2.2... no
*** The gtk-config script installed by GTK could not be found
*** If GTK was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GTK_CONFIG environment variable to the
*** full path to gtk-config.
configure: error: *** GTK+ >= 1.2.2 not installed - please install first ***
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

ERRO! Ai o... hey.. mas já é noutra coisa! Notem a linha a negrito! Já resolvemos a nossa dependência! Agora temos é outra em mãos.. Fazendo um raciocinio análogo:

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ sudo aptitude search libgtk1.2
c libgtk1.2 - The GIMP Toolkit set of widgets for X
c libgtk1.2-common - Common files for the GTK+ library
p libgtk1.2-dbg - Debugging files for the GIMP Toolkit
p libgtk1.2-dev - Development files for the GIMP Toolkit
p libgtk1.2-doc - Documentation for the GIMP Toolkit
joao@Desktop:~/Desktop/xmms-1.2.11$ sudo aptitude install libgtk1.2 libgtk1.2-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
[ .................. ]
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Building tag database... Done
joao@Desktop:~/Desktop/xmms-1.2.11$ ./configure
[ .............. ]
[ Depois de MESMO MUITA linha de output ]
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands

Configuration:
Install path: /usr/local
Build OSS plugin: yes
Build esd plugin: no
Build Solaris plugin: no
Build BSD Sun plugin: no
Build ALSA plugin: no
Build mikmod plugin: no
Build Ogg Vorbis plugin: yes
Build OpenGL plugins: no
Pthread flag: -lpthread
Use one plugin dir: no
Allow user plugin dir: yes


joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Vemos que faltam algumas coisa ali. Diz "no" em muitos plugins. Isto porquê: as dependências nem sempre são obrigatórias. Podem ser opcionais para alguns plugins, tal como estas. Por exemplo. Se eu quisesse o sistema de som ALSA, teria que o instalar, instalar a sua biblioteca de desenvolvimento e depois de correr DE NOVO este ./configure teria ali na linha do ALSA um "yes". Percebem a lógica não percebem?

Vamos para o passo seguinte? Já temos o nosso ./configure feito, agora, falta construir o ficheiro de instalação: make.

6) make

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ make
make all-recursive
make[1]: Entering directory `/home/joao/Desktop/xmms-1.2.11'
[ MUITAS LINHAS ESTRANHAS DESTAS ]
make[2]: Leaving directory `/home/joao/Desktop/xmms-1.2.11'
make[1]: Leaving directory `/home/joao/Desktop/xmms-1.2.11'
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Já está! Se houver algum problema durante o make, bem, eu nunca o soube ultrapassar muito bem. Terão que recorrer ao Google para ver se há de facto algum problema com os ficheiros da fonte. Mas em principio, corre tudo bem! Falta agora portanto, o passo final: make install. Este convem ser com permissoes de super-utilizador porque vamos mover e criar ficheiros em pastas como a /usr, na raiz do sistema, onde o nosso utilizador normal, habitualmente, não tem permissoes.

7) sudo make install

[code=bash]joao@Desktop:~/Desktop/xmms-1.2.11$ sudo make install
[ MUITAS LINHAS DEPOIS ]
make[1]: Leaving directory `/home/joao/Desktop/xmms-1.2.11/po'
make[1]: Entering directory `/home/joao/Desktop/xmms-1.2.11'
make[2]: Entering directory `/home/joao/Desktop/xmms-1.2.11'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/usr/bin/install -c 'xmms-config' '/usr/local/bin/xmms-config'
test -z "/usr/local/share/aclocal" || mkdir -p -- "/usr/local/share/aclocal"
/usr/bin/install -c -m 644 'xmms.m4' '/usr/local/share/aclocal/xmms.m4'
test -z "/usr/local/man/man1" || mkdir -p -- "/usr/local/man/man1"
/usr/bin/install -c -m 644 './xmms.1' '/usr/local/man/man1/xmms.1'
/usr/bin/install -c -m 644 './wmxmms.1' '/usr/local/man/man1/wmxmms.1'
make[2]: Leaving directory `/home/joao/Desktop/xmms-1.2.11'
make[1]: Leaving directory `/home/joao/Desktop/xmms-1.2.11'
joao@Desktop:~/Desktop/xmms-1.2.11$ [/code]

Et voilá! Já está. Experimentem agora fazer na consola: xmms. Funciona Smile Pelo menos em mim Smile

Espero que tenham percebido a mecânica da coisa:

--> ./configure --> Falta dependência --> Procurar/Instalar Dependência --> ./configure --> .... --> ./configure --> Tudo bem.

--> make ---> make install --> PROGRAMA INSTALADO


Boas instalações!
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Lopes
Imperial
avatar

Mensagens : 62
Data de inscrição : 21/11/2007

MensagemAssunto: Re: Instalar a partir de código fonte (tar.gz, tar.bz2, etc)   Seg Mar 31, 2008 3:32 pm

Grande Post ó JP
Keep Going
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Instalar a partir de código fonte (tar.gz, tar.bz2, etc)
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Como eu bloqueio o acesso ao código-fonte ?
» Editar código-fonte do fórum
» [TUTORIAL] Impedir abrir o Código-Fonte da página
» C - Tropas Estelares [+Código Fonte]
» Aumentar texto ao passar o mouse

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
whathaveidone :: Informática :: GNU/Linux :: Tutoriais e HowTos-
Ir para: