./configure, make e make install

Iniciado por AndrewAguiar, 02 de Janeiro de 2008, 14:22

tópico anterior - próximo tópico

AndrewAguiar

Olá pessoal.

Não é tanto uma duvida, é mais uma curiosidade, como funciona o esquema de instalação de diversos programas que não são gerenciados por pacotes exemplo instalei o ruby-1.8.6.tar.gz

beleza, desempacotei e seguindo a receita de bolo:

./configure
make
make install


gostaria de entender.
1) O .configure faz, sei que eh um script porém o que geralmente ele faz ?
2) e o make ? posso considera-lo uma especie de ant para C ?

Grato a todos.

Felix

Uma breve explicação:

(...)
$ ./configure
$ make
# make install

O "./configure" executa um script (dentro da pasta do programa), que verifica o sistema, em busca dos componentes de que precisa. Ele avisa caso algo esteja faltando, como neste erro que apareceu ao tentar compilar o Qemu:

ERROR: QEMU requires SDL or Cocoa for graphical output
To build QEMU with graphical output configure with --disable-gfx-check
Note that this will disable all output from the virtual graphics card.


Neste exemplo, está faltando a biblioteca de desenvolvimento do SDL. Quase sempre, os pacotes que contêm bibliotecas começam com "lib" e os pacotes de desenvolvimento terminam com "-dev". Procurando no http://www.debian.org por um pacote que comece com "lib", termine com "-dev" e tenha "sdl" no meio, você chega ao "libsdl1.2-dev", que é justamente o pacote que estava faltando neste caso :). Em casos onde a solução parecer mais difícil, a melhor opção é fazer uma busca no Google, usando parte da mensagem de erro.

O "make" cuida do trabalho pesado, fazendo a compilação propriamente dita. Ele se baseia nas informações deixadas pelo "./configure" para encontrar os componentes de que precisa.

Finalmente, temos o "make install", que finalmente instala o programa, copiando os arquivos gerados pelo make para as pastas corretas do sistema. Ao contrário dos dois primeiros comandos, ele precisa ser executado como root, já que envolve fazer alterações no sistema.

Apesar destes três comandos serem um padrão adotado na maioria dos pacotes, eles não são necessariamente uma regra. Muitos programas usam sistemas simplificados de instalação ou mesmo scripts próprios, por isso é sempre bom dar uma olhada no arquivo "INSTALL" ou "README" dentro da pasta, que explica os passos necessários. Em geral, os programas instalados a partir dos fontes não criam os ícones no menu. Você precisa chamar o programa via linha de comando ou criar os ícones manualmente.
(...)

obs.: 'chupado' descaradamente do Guia do Hardware! Artigo completo em Instalando programas a partir do código fonte

AndrewAguiar

Valew pela resposta kra.

Hummn certo então era o que eu desconfiava ja. ;D

só mais uma duvida:

pelo que eu andei pesquisando existe estes meios de se instalar programas no Linux:

1) pacotes deb, rpm (este rpm não funciona no Ubuntu certo ?).
2) arquivos .bin (são tipo exe's ?).
3) a partir do fonte (./configure, make, make install).
4) pelo apt-get ou apititude ou synaptic ( estes 2 ultimos são diferentes ou por baixo dos panos usam o apt-get ? )

Grato.

zoroastro

Citação de: AndrewAguiar online 02 de Janeiro de 2008, 15:29
Valew pela resposta kra.

Hummn certo então era o que eu desconfiava ja. ;D

só mais uma duvida:

pelo que eu andei pesquisando existe estes meios de se instalar programas no Linux:

1) pacotes deb, rpm (este rpm não funciona no Ubuntu certo ?).
2) arquivos .bin (são tipo exe's ?).
3) a partir do fonte (./configure, make, make install).
4) pelo apt-get ou apititude ou synaptic ( estes 2 ultimos são diferentes ou por baixo dos panos usam o apt-get ? )

Grato.
1) pacotes deb funciona com apenas dois cliques e vc instala se tiver as dependencias já instaladas.

o RPM pode ser instalado caso vc converte-lo para DEB com o programa do terminal chamado Alien...
- procure pelo forum como usar o Alien.
2) nao conheço bem.
3) a partir da fonte não... chame de "Instalação ah lá Slack" ou, Compilação, somente...
4) o apt-get ou aptitude ou synaptic instala apenas pacotes .DEB !

pronto?
de nada :)

lembre-se: Ah tudo isso na internet e no fórum para se saber antes de perguntar :)
e sim, eu já perguntei antes de perguntar hehehehe

té mais

AndrewAguiar

valew kra.

E acredite eu pesquisei sobre isso antes de perguntas  ;D
porém a maioria das vezes achava apenas exemplos e nunca explicações teóricas.

Grato a todos.

leandromdelima

Citação de: zoroastro online 04 de Janeiro de 2008, 01:57
1) pacotes deb funciona com apenas dois cliques e vc instala se tiver as dependencias já instaladas.

Esse negócio de instalar .deb com dois cliques pra mim nunca funcionou.  O gnome sempre abria o pacote com o fileroler, o empacotador gráfico.  De certa forma isso foi bom pra mim, que tive que aprender a instalar via terminal com sudo dpkg, agora não quero outra vida   ;D

Agora quando ao configure, make e make install, gostaria de partilhar uma dica.  Poucos programas compilados e instalados manualmente trazem um script de desinstalação, o famoso make uninstall.  Procurei saber como se desinstalavam esses tipos de programas sem o make uninstall e os amigos aqui do fórum me aconselharam a utilizar sempre pacotes pré-compilados em .deb ou o apt-get, pois assim a desinstalação completa pode ser feita pelo synaptic.

Mas existem programas que simplesmente não possuem um .deb pronto ou não constam nos repositórios, somente estão disponíveis em fonte.  O que fazer para realizar uma instalação possível de desinstalar posteriormente?  Utilizar o checkinstall para gerar o .deb:


$./configure
$make
$checkinstall -d
$sudo dpkg -i <pacote .deb gerado>


Com isso vc gera um pacote .deb da compilação do fonte que pode ser instalado e desinstalado por gerenciadores de pacotes.  Essa dica me facilitou muito a vida.
Quando eu avançar, avancem comigo.  Se eu parar, me empurrem para frente.  Se eu der meia volta, matem-me.

zoroastro

$checkinstall -d

[duvida de iniciante]Mas o -d após o chekcinstall significa instalar ou criar um .deb??[/duvida de iniciante]

Porque - d dá a nítida impressão de instalação  :-\

fabiovalinhos

Checkinstall é velho de guerra. Mas, já cheguei a ver, em alguns tópicos perdidos a um bom tempo, que ele também não é 100% (na verdade, nada é).

Houve algum tipo de problema.

No geral, ainda prefiro os .debs.
NO meu caso, é rarissímo eu precisar de um pacote fonte..tem tudo em .deb


Valeu.
7355
sudo dpkg no seu quadrado ...sudo dpkg no seu quadrado ...
http://www.youtube.com/watch?v=tHmrq0FtczM

leandromdelima

Citação de: zoroastro online 07 de Janeiro de 2008, 19:50
$checkinstall -d

[duvida de iniciante]Mas o -d após o chekcinstall significa instalar ou criar um .deb??[/duvida de iniciante]

Porque - d dá a nítida impressão de instalação  :-\

Retirado do man do checkinstall:

Citar
       -D        Create a Debian package.

       -R        Create a RPM package.

       -S        Create a Slackware Package.

Mas pq -d dá uma nítida impressão de instalação?  Se fosse menos -i até seria.
Quando eu avançar, avancem comigo.  Se eu parar, me empurrem para frente.  Se eu der meia volta, matem-me.

zoroastro

nao nao eu quis dizer desinstalação, nesta eu errei na digitação...

sobre o $ man checkinstall, nem pensei em fazer isso... :-\
tenho que lembrar de fazer isso qndo tiver duvida...


vlw ae :)