Gentoo Logo

Aviso : Este documento não é válido e não é mais mantido.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


6. A aplicação ebuild

Conteúdo:

6.a. Emerge e ebuild

A aplicação ebuild é uma interface de baixo nível com o sistema do Portage. Usando a aplicação você pode executar ações específicas em uma dada ebuild. Por exemplo, você pode fazer passos de instalação individuais você mesmo.

Usar ebuild serve mais para propósitos de desenvolvimento; mais informações sobre ebuild pode, logo, ser encontrado no Manual dos Desenvolvedores, em inglês. No entanto, iremos explicar que instâncias do ebuild são invocados pelo Portage durante o processo de instalação de um certo título de software, e como invocar os passos de pós-configuração que algumas ebuilds pedem que você faça.

6.b. Instalando software manualmente

Baixando as fontes & fazendo checksum delas

Quando você invoca ebuild em um dado arquivo de ebuild, ele verifica se as checksums de todos arquivos envolvidos são iguais às do Manifest acompanhante ou arquivo files/digest-<nome>-<versão>. Isso só acontece depois das fontes terem sido baixadas.

Para baixar as fontes usando ebuild, rode:

Listagem de código 2.1: Baixando as fontes

# ebuild path/to/ebuild fetch

Se o md5sum da ebuild não bater com o listado no arquivo Manifest, ou uma das fontes baixadas não bater com as litadas no arquivo files/digest-<pacote>, você irá receber um erro parecido com o seguinte:

Listagem de código 2.2: Erro no checksum de um ebuild

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

A linha subseqüente irá mencionar o arquivo com erro.

Se você tiver certeza que as fontes que você baixou e o ebuild em si são válidos, você pode gerar manualmente o Manifest e o arquivo digest-<pacote> usando a função digest do ebuild:

Listagem de código 2.3: Gerando novo Manifest e digest

# ebuild caminho/para/ebuild digest

Desempacotando as fontes

Para desempacotar as fontes em /var/tmp/portage (ou qualquer outro local que você especificou em /etc/make.conf), rode a função unpack da ebuild:

Listagem de código 2.4: Desempacotando as fontes

# ebuild caminho/para/ebuild unpack

Isto irá executar a função src_unpack() da ebuild (que tem como padrão a extração normal se nenhuma função src_unpack() é definida). É também nesse passo que todos patches necessários são aplicados.

Compilando as fontes

O próximo passo no processo de instalação é compilar as fontes. A função compile da ebuild faz esse passo ao executar a função src_compile() da ebuild. Isto também faz os passos de configuração se necessários.

Listagem de código 2.5: Compilando as fontes

# ebuild caminho/para/ebuild compile

É recomendado que você edite a função src_compile() da ebuild se você quiser mudar as instruções de compilação. No entanto, você também pode enganar o Portage a acreditar que a aplicação ebuild terminou os passos de compilação. Rode todos comandos necessários você mesmo e crie um arquivo vazio chamado .compiled no diretório de trabalho:

Listagem de código 2.6: Informando o Portage sobre trabalhos de compilação terminados

# touch .compiled

Instalando os arquivos em um local temporário

No próximo passo o Portage irá instalar todos arquivos necessários em um local temporário. Este diretório irá conter todos arquivos que serão instalados no sistema de arquivos de uso. Você pode fazer isso rodando a função install da ebuild, que executa a função src_install() da ebuild:

Listagem de código 2.7: Instalando os arquivos

# ebuild caminho/para/ebuild install

Instalando os arquivos em um sistema de arquivos de uso

O passo final é instalar todos arquivos no sistema de arquivos de uso e registrá-los no backend do Portage. O ebuild chama o passo de "qmerge" e envolve os seguintes passos:

  • Executar a função pkg_preinst() se especificada
  • Copiar todos arquivos para o sistema de arquivos de uso
  • Registrar os arquivos no backend do Portage
  • Executar a função pkg_postinst() se especificada

Rode a função qmerge do ebuild para fazer esses passos:

Listagem de código 2.8: Instalando so arquivos no sistema de arquivos de uso

# ebuild caminho/para/ebuild qmerge

Limpando o diretório temporário

Finalmente, você pode limpar o diretório temporário usando a função clean do ebuild:

Listagem de código 2.9: Limpando o diretório temporário

# ebuild caminho/para/ebuild clean

6.c. Funções adicionais do ebuild

Rodando todos comandos relacionados ao merge

Usando a função merge do ebuild você pode rodar os comando fetch, unpack, compile, install e qmerge de uma só vez:

Listagem de código 3.1: Instalando software

# ebuild caminho/para/ebuild merge

Fazendo ações de configuração

Algumas aplicações incluem instruções que configuram o pacote para uso em seu sistema. As instruções podem ser interativa e portanto não são executadas automaticamente. Para rodar os passos de configuração, que estão listadas na função opcional config() da ebuild, use a função config do ebuild:

Listagem de código 3.2: Configurando um pacote

# ebuild caminho/para/ebuild config

Construindo um pacote (RPM)

Você pode instruir o Portage para criar um pacote binário de uma ebuild ou até mesmo um arquivo RPM. Use a função package ou rpm do ebuild para criar os arquivos. Existem algumas diferenças entre as duas funções, todavia:

  • A função package é bem parecida com a função merge, executando todos passos necessários (fetch, unpack, compile, install) antes de criar o pacote
  • A função rpm cria um pacote RPM dos arquivos criados depois de ter rodado a função install do ebuild

Listagem de código 3.3: Criando pacotes

(Para um pacote binário compatível com o Portage)
# ebuild caminho/para/ebuild package

(Para um pacote RPM)
# ebuild caminho/para/ebuild rpm

O arquivo RPM criado, no entanto, não tem a informação de dependências da ebuild.

6.d. Mais informações

Por favor, consulte as seguintes páginas de man para mais informações sobre o Portage, a aplicação ebuild e os arquivos do ebuild:

Listagem de código 4.1: Página de man

$ man portage    (O próprio Portage)
$ man emerge     (O comando emerge)
$ man ebuild     (O comando ebuild)
$ man 5 ebuild   (sintaxe de arquivos ebuild)

Você também pode encontrar mais informações relacionadas a desenvolvimento no Manual dos Desenvolvedores, em inglês.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


Imprimir

View all

Atualizado 19 de dezembro de 2005

A versão original deste documento foi atualizada em 11 de abril de 2013

Resumo: Em "A aplicação ebuild" você é informado sobre os passos que o Portage toma enquanto está instalando software e como você pode fazer o mesmo sozinho usando a aplicação ebuild.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desenvolvedor do Gentoo x86

Tavis Ormandy
Desenvolvedor do Gentoo Alpha

Jason Huebel
Desenvolvedor do Gentoo AMD64

Guy Martin
Desenvolvedor do Gentoo HPPA

Pieter Van den Abeele
Desenvolvedor do Gentoo PPC

Joe Kallar
Desenvolvedor do Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Colaborador

Enderson Maia
Tradutor Responsável

Marcelo Góes
Tradutor

Eduardo Magalhães
Tradutor

Marcelo Azambuja
Tradutor

Marcos Vinicius Buzo
Tradutor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.