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 |
# ebuild caminho/para/ebuild package
# 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
$ man emerge
$ man ebuild
$ man 5 ebuild
|
Você também pode encontrar mais informações relacionadas a desenvolvimento no Manual dos Desenvolvedores, em inglês.
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|