Como criar pacotes para o Gentoo ou Sabayon Linux

Este artigo explica e exemplifica, um procedimento fácil para fazer pacotes para o Gentoo ou Sabayon.

[ Hits: 24.234 ]

Por: Alberto Federman Neto. em 20/05/2013 | Blog: https://ciencialivre.blog/


Fazendo e instalando um pacote para Sabayon



Para Sabayon, é ligeiramente diferente, posto que nele, Portage e Entropy são compatíveis, mas não são idênticos.

Aqui, a partir deste ponto, agradecimentos ao meu colega Sabayonino, Itália, experiente Sabayonero e Gentoísta. Ele que me deu as dicas, para o procedimento funcionar sempre, porque nos meus testes iniciais, faltavam dependências:
Comece fazendo pacote tipo Gentoo:

Você viu, na página 3, como um pacote para Gentoo é feito. Vamos fazer a mesma coisa, mas no Sabayon.

Para melhor garantir que as dependências foram baixadas e os caminhos ("paths") corretos, é necessário fazê-lo no diretório default de sistema e não no PKGDIR.

Pode parecer arriscado, mas só precisa um pouco de cuidado, para não delte para Sabayonetar nada, nenhum Ebuild, nem mudar permissões.

Volte aos procedimentos da página 2. Comente a linha do PKGDIR, para desativá-la, no "make.conf", deixe-a assim:

# PKGDIR="/home/usuário/PKGDIR"


Agora, no exemplo, o mesmo pacote "myspell-pt-br". Execute o comando da página 3:

# LINGUAS="pt_BR" emerge -v -B --newuse app-dicts/myspell-pt-br

Como para o sistema não existe mais o diretório PKGDIR (nós comentamos), o pacote vai ficar em um diretório de sistema, que por padrão é: /usr/portage/packages/'Categoria'.

No nosso exemplo, a 'Categoria' é app-dicts:
Resumindo, neste ponto, fizemos um pacote para Gentoo (como os da página 3), só que em um diretório de sistema.

Alternativamente, menos arriscado, faça como na página 3 (sem comentar o PKGDIR) depois copie o diretório e os arquivos para a pasta correta:

cd /
$ cd home/usuario/PKGDIR

# cp app-dics /usr/portage/packages
# cp Packages /usr/portage/packages


Convertendo em pacote para Sabayon

Necessário convertê-lo, para que funcione em Sabayon. Pode ser feito criando um diretório para conter os pacotes de Sabayon:

cd /
$ cd home/usuario/SABADIR

# mkdir SABADIR


Agora, execute o Entropy para fazer o pacote. Com os os caminhos e dependências foram acertados, pode ser feito de qualquer diretório, inclusive do "/home/usuario/Desktop":

# equo pkg inflate --savedir /home/usuario/SABADIR /usr/portage/packages/app-dicts/myspell-pt-br-2.1.2.tbz2

Observe como funciona:

sudo equo pkg inflate --savedir /home/albfneto/SABADIR /usr/portage/packages/app-dicts/myspell-pt-br-2.1.1.tbz2

>>  @@ A geração do pacote de metadados está completa.: 
 /home/albfneto/SABADIR/app-dicts:myspell-pt-br-2.1.1.88aa0de35de44
>>  @@ pacote gerado em: /home/albfneto/SABADIR/app-dicts:
 myspell-pt-br-2.1.1.88aa0de35de445485196b9a9e137522bbd751c02~9999.tbz2

O pacote foi gerado, está na pasta SABADIR.

Esse nome longo é porque o meu Sabayon (arquivo: /etc/entropy/client.conf) está configurado para usar sistema Delta, economizar largura de banda, baixando só as partes necessárias dos pacotes. Se você não usa delta, o nome via ficar "normal", clássico.

Se você for instalá-los em seu próprio micro, deixe o nome assim, para que ele use o Delta. Se for fazer pacote "genérico" para qualquer Sabayon, então renomeie:

cd / $ cd home/usuario/SABADIR

# mv app-dicts:myspell-pt-br-2.1.1.88aa0de35de445485196b9a9e137522bbd751c02~9999.tbz2 app-dicts:myspell-pt-br-2.1.1.tbz2


Pronto, pacote para Sabayon feito e salvo! Para o seu pacote, substitua "myspell-pt-br" pelo nome do seu pacote.

Instalando o pacote no Sabayon

Agora, vamos instalar. Precisa primeiro copiar o pacote feito para a pasta de sistema do Entropy:

cd / $ cd home/usuario/SABADIR

# cp myspell-pt-br-2.1.1.tbz2 /var/lib/entropy/client/packages/packages/AMD64/5


Se achar muito complicado, ou tiver muitos pacotes a copiar, pode usar seu gerenciador de arquivos favorito. Um que eu gosto para fazer isso, é o Krusader.

Instale-o com o comando abaixo e abra-o com privilégios de root:

sudo equo i krusader
$ kdesu krusader


Agora, simples, vá para as pasta adequadas e copie. Veja na figura:
Agora, instale com o comando:

# equo i /var/lib/entropy/client/packages/packages/AMD64/5/myspell-pt-br-2.1.1.tbz2

Veja no meu exemplo, como instalou:

sudo equo i /var/lib/entropy/client/packages/packages/amd64/5/app-dicts:myspell-pt-br- 2.1.1.88aa0de35de445485196b9a9e137522bbd751c02~9999.tbz2

>>  @@ Calculando dependências...
>>  ##  [app-dicts:myspell-pt-br-2.1.1.
 88aa0de35de445485196b9a9e137522bbd751c02~9999.tbz2] 
 app-dicts/myspell-pt-br-2.1.1|9999
>>  @@ Pacotes que precisam ser instalados/atualizados/rebaixados: 1
>>  @@ Pacotes que precisam ser removidos: 0
>>  @@ Tamanho de recebimento: 0b
>>  @@ Espaço de disco liberado: 0.0b
>>  @@ Você precisa de pelo menos: 8.7MB de espaço livre
>>  ::: >>>  (1/1) 1 pacote
>>  +++ >>>  (1/1) app-dicts/myspell-pt-br-2.1.1
>>    ## Desempacotando: 
 app-dicts:myspell-pt-br-2.1.1.
 88aa0de35de445485196b9a9e137522bbd751c02~9999.tbz2
>>    ## Instalando pacote: app-dicts/myspell-pt-br-2.1.1
>>    ## [Brazilian dictionaries for myspell/hunspell]
>>    ## Atualizando base de dados: app-dicts/myspell-pt-br-2.1.1
>>    ## Limpando dados do aplicativos anteriormente instalados
>>    ## Limpando: app-dicts/myspell-pt-br-2.1.1
>>  @@ Instalação completa.


equo s myspell-pt-br

>>  @@ Buscando...
>>      @@ Pacote: 
 app-dicts/myspell-pt-br-2.1.1 branch: 5, [__system__]
>>         Instalado:  versão: 2.1.1 ~ tag: NoTag ~ revisão: 9999
>>         Slot:       0
>>         Homepage:   http://www.broffice.org/verortografico/
>>         Descrição:  Brazilian dictionaries for myspell/hunspell
>>         Licença:    LGPL-3 MPL-1.1
>>   Palavras-Chave:   myspell-pt-br
>>   Encontrado:       1 entrada


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Preparando o sistema
   3. Fazendo e instalando um pacote para Gentoo
   4. Fazendo e instalando um pacote para Sabayon
   5. Empacotando programas já instalados no sistema
   6. Conclusão
Outros artigos deste autor

Experimento: Transformando openSUSE 12.3 Tumbleweed em 13.2 Factory Milestone 0

Modificando a remasterização com Molecule - Sabayon completo, com KDE e GNOME

BOINC - Computação distribuída e aplicações científicas

Sabayon 5.0 - Transformando Sabayon 4.0r1 em Sabayon 5.0 "Full" (parte 2)

Gentoo: Interfaces gráficas para Portage/Emerge - substitutos do Kuroo

Leitura recomendada

Compilando o p7zip-desktop no Ubuntu e Linux Mint

Atualize rapidamente os PC's da sua LAN com Debian

Uma breve introdução ao Hydrogen

Escreva partituras no Linux

Instalação e correção de erros do DBDesigner 4 no Linux

  
Comentários
[1] Comentário enviado por albfneto em 20/05/2013 - 07:59h

ERRATA E COMPLEMENTOS DO ARTIGO:

Atualizado até 6 de Fevereiro de 2015.

IMPORTANTE

uma versão do pacote MYSPELL-PT-BR, agora, baixe deste Link:

https://www.dropbox.com/s/n0n5eax8jut8xke/app-dicts%3Amyspell-pt-br-2.1.1.a89f1d3613f5c1b8ec11efc457...

mas ele já está no repositório normal do sabayon, instalável com equo.



A) ERRATA:
Página 1, há um erro no link para baixar o pacote Serpentine, página 1. Onde se lê "href =" o correto é sem "href =".

Pagina 4, onde se lê: "para não delte para Sabayonetar nada, nenhum Ebuild", lê-se: "para não deletar nada, nenhum Ebuild, ou Diretório".

Página 1,onde se lê:"protegê-lo da minha instalação", lê-se: proteger o da minha instalação".


B) COMPLEMENTOS. MAIS PACOTES.

Aqui irei colocar Links para downloads de mais pacotes que estou fazendo e guardando, podem baixar livremente.

Formando um pequeno repositório de pacotes para Sabayon e Gentoo:

Mais pacotes que criei e disponibilizei.

B1) Sulfur, a antiga interface gráfica do Entropy (para Sabayon, antecessora do Rigo). O Sulfur é mais prático quando você quer controlar quais pacotes instalar:

http://www.vivaolinux.com.br/dica/Sabayon-Linux-Usando-os-dois-instaladores-graficos-tanto-Rigo-como...

Pode ser baixada deste endereço:

https://www.dropbox.com/s/sr2wbxb6cwiwapd/app-admin%3Asulfur-1.0_rc107.c393e29a7b729783b5b2bd722bb88...

B2) Um Firefox, Experimental, 64 Bits, versão 21,compilado em Português do Brasil, com suporte inclusive ao antigo Gstreamer, para Sabayon:

https://www.hidrive.strato.com/lnk/bErhkkvl
https://www.dropbox.com/s/lpgd1mcod7l4g1i/www-client%3Afirefox-21.0.01a466a30551917b3fc8921e8d525658...

B3) ConsoleKit, necessário em alguns casos para manter o botão desligar ativo:

http://www.vivaolinux.com.br/dica/Sabayon-Linux-com-MATE-ou-KDE-Botao-de-Desligar-sumiu-Resolvido/

Baixe de:

https://www.dropbox.com/s/592umm11cwq5h8w/sys-auth%3Aconsolekit-0.4.5_p20120320-r1%7E0.tbz2
https://www.dropbox.com/s/ax6dgqwmbnwitgs/sys-auth%3Aconsolekit-0.4.5_p20120320-r2.fe9df300c1975bcca...

B4) Protobuf antigo, 2.4.1, anterior à versão 2.5.0, necessário para manter fusion-icon funcionando, com o protobuf novo, não funciona.

baixem de:

https://www.dropbox.com/s/uq1lsm41whyzegl/dev-libs%3Aprotobuf-2.4.1.a36e506628aeb01fd9bc41c9306f9186...

B5) Alguns Codecs de Audio Uteis. o Win32Codecs, já tem no Sabayon, mas aqui estão AMD64Codec, FAAC, MAC (Monkey's Audio Codecs)

AMD64CODECS:
https://www.dropbox.com/s/9x7w1pc52zz8n79/media-libs%3Aamd64codecs-20071007.2b5536ed09c0b543e3b9edef...

FAAC:
https://www.dropbox.com/s/lcvdneslfeidsy1/media-libs%3Afaac-1.28-r3.426d594fa34f97179a44a932fea3c1c1...

MAC:
https://www.dropbox.com/s/dhad9scku6fw608/media-sound%3Amac-3.99.4.5.7-r1.dd6b639a0952a64f9d09307580...

WIN32CODECS:
https://www.dropbox.com/s/8e4trlkeulwtel5/media-libs%3Awin32codecs-20071007-r4.659aabc928faff0508fee...

Para Gentoo:
https://www.dropbox.com/sh/xsgnqxg9vwx4qhb/X9o-305vKh
https://www.dropbox.com/sh/y801qaewvp9gwxq/0cdQa3iMJl

B6) Este é um Kernel Estável (3.9.11) que não dá nenhum problema com NVIDIA, nem com ATI, nem com Systemd,

porque o 3.10 dá problemas.

Se quiser usar esse Kernel, baixe de:

https://www.dropbox.com/s/5ort7o6dk1q84i4/sys-kernel%3Alinux-sabayon-3.9.11.30981542b966d78d6b6e2446...

B7) Para a GUI de Portage, Kuroo,há uma nova versão, consulte este meu Artigo:

https://gnutwoall.wordpress.com/2013/10/28/compilando-kuroo4-64-bits-em-sabayon-eou-gentoo/

B8) Versão de 2012 do Amule Adunanza. Agradecimentos a Sabayonino, Itália pela compilação.

Pode ser baixado da minha área do Dropbox:

https://www.dropbox.com/s/tijoitg2029tda0/net-p2p%3Aamuleadu-9999.99059dda93a20df7536c3e5c81c777074e...

Ou da de Sabayonino:

https://www.dropbox.com/s/6a58r9ewnmtud16/net-p2p%3Aamuleadu-9999.99059dda93a20df7536c3e5c81c777074e...

também veja este outro meu artigo sôbre o Amule Adunanza:

https://gnutwoall.wordpress.com/2014/07/07/amule-adunanza-em-sabayon/









C) SCREENSHOT:

Este Screenshot mostra o aplicativo empacotado Portato, que foi baixado do Link e instalado em outro computador:

http://www.vivaolinux.com.br/screenshot/KDE-Preservando-Pacote-Classico-que-nao-existe-mais/

Isso demostra, confirma, que o Pacote criado está funcionando.





[2] Comentário enviado por removido em 20/05/2013 - 10:25h

Ótimo artigo Alberto (como sempre). Testei aqui as duas formas para Gentoo (estou com Funtoo) e funcionou perfeitamente. Depois de ver o seu artigo eu cheguei a uma conclusão: o Daniel e o Fábio são gênios. Interessante que no caso do portage, ele mesmo procura pelas dependências e empacota-as, pensei que ele empacotaria somente o pacote que mandei, mas ele empacotou as dependências também. Tenho apenas algumas perguntas:
1º Para criar pacotes para Sabayon eu precisaria ter o entropy instalado aqui no meu Funtoo? Ou tem outra forma de criar sem usar o entropy?
2º Como faria para empacotar direto dos fontes de um programa, teria que escrever uma ebuild para o portage?

Muito bom o seu artigo! Favoritado!

[3] Comentário enviado por albfneto em 20/05/2013 - 12:23h

Sim, precisa, porque para empacotar para Sabayon (que é entropy), precisa ter o Entropy. Como viu no meu artigo, o pacote entropy pode ser feito do pacote gentoo normal, mas a conversão, pacote gentoo para pacote sabayon, é feita pelo Entropy.

vc pode tentar instalar entropy no funtoo, ele está no Overlay Sabayon, mas se não quiser mudar o Funtoo, colocando instalador binário nele, faça um duplo boot comum sabayon pequeno, tipo com fluxbox, só para criar pacotes de sabayon.

Sim, ele empacota as dependencias, principalmente se vc instalar o pacote a ser criado no seu micro antes.
Concordo com vc, Portage e Entropy são Obras-Primas de Programação, muito bem bolados.

Inclusive, Fábio disse, na época que fez o entropy,que entropy e portage usam inteligência artificialpara a detecção das dependências. São aplicativos fabulosos, pq portage é um GCC automático, e o Entropy, baixa o pacote, acerta com o portage, compara (portage triggering) e depois usa o portage para instalá-lo

Inclusive gentoístas que criticam muito Sabayon, possívelmente nunca testaram sabayon, pq mesmo o Daniel, disse para mim que gosta de Sabayon, e que usou no notebook dele, para não precisar recompilar tudo, pq isso esquentava o notebook.

Resposta da sua pergunta dois: sim precisa, o Ebuild é o script guia, que "fala" pro Portage o que ele deve fazer. Tem alguns artigos e tutoriais na net de como escrever ebuilds,mas é uma coisa meio difícil para mim, pq não sou profissional de TI, mas acredito que quem faz Bash Scripts e Scripts em Python (tanto Portage como Entropy foram escritos em Python), consiga.

[4] Comentário enviado por removido em 20/05/2013 - 13:49h


[3] Comentário enviado por albfneto em 20/05/2013 - 12:23h:

Sim, precisa, porque para empacotar para Sabayon (que é entropy), precisa ter o Entropy. Como viu no meu artigo, o pacote entropy pode ser feito do pacote gentoo normal, mas a conversão, pacote gentoo para pacote sabayon, é feita pelo Entropy.

vc pode tentar instalar entropy no funtoo, ele está no Overlay Sabayon, mas se não quiser mudar o Funtoo, colocando instalador binário nele, faça um duplo boot comum sabayon pequeno, tipo com fluxbox, só para criar pacotes de sabayon.

Sim, ele empacota as dependencias, principalmente se vc instalar o pacote a ser criado no seu micro antes.
Concordo com vc, Portage e Entropy são Obras-Primas de Programação, muito bem bolados.

Inclusive, Fábio disse, na época que fez o entropy,que entropy e portage usam inteligência artificialpara a detecção das dependências. São aplicativos fabulosos, pq portage é um GCC automático, e o Entropy, baixa o pacote, acerta com o portage, compara (portage triggering) e depois usa o portage para instalá-lo

Inclusive gentoístas que criticam muito Sabayon, possívelmente nunca testaram sabayon, pq mesmo o Daniel, disse para mim que gosta de Sabayon, e que usou no notebook dele, para não precisar recompilar tudo, pq isso esquentava o notebook.

Resposta da sua pergunta dois: sim precisa, o Ebuild é o script guia, que "fala" pro Portage o que ele deve fazer. Tem alguns artigos e tutoriais na net de como escrever ebuilds,mas é uma coisa meio difícil para mim, pq não sou profissional de TI, mas acredito que quem faz Bash Scripts e Scripts em Python (tanto Portage como Entropy foram escritos em Python), consiga.


Obrigado pelas respostas Alberto! Estou pensando em empacotar algumas coisas para Sabayon e disponibilizar por exemplo no MEGA ou no Dropbox. Principalmente esses pacotes pouco conhecidos, esses dias eu vi no grupo do sabayon o pessoal querendo um pacote que não tinha no repo do sabayon e nem na árvore do Gentoo... Por isso estou mais interessado empacotar direto dos fontes, vou ver se consigo aprender a escrever as ebuilds.
__________________________
Dei uma pesquisada e uma olhada nas ebuilds e realmente parecem ser difíceis rsrsrs. As PKGBUILDs do Arch são muito mais simples.

[5] Comentário enviado por azk em 23/05/2013 - 01:33h

Excelente contribuição...

favoritado
;-))

[6] Comentário enviado por felipealexandre em 30/05/2013 - 00:24h

Muito bom artigo, é muito útil para criar um pacote proprietário ou algum software que não é disponibilizado nos repositórios.

[7] Comentário enviado por fabiojlbc1982 em 22/03/2017 - 15:44h

mudou algum procedimento neste tutorial?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts