Instalando, gerenciando e mantendo pacotes no Gentoo Linux e derivados

O Gentoo é uma distribuição Linux conhecida pela complexidade, e por isso considerada de difícil utilização. Não tem apt-get, yum, nem aceita bem pacotes tipo .DEB ou .RPM. Embora possa trabalhar com binários, geralmente usa fontes e os compila automaticamente. Neste artigo são descritas todos os modos de instalar qualquer coisa em Gentoo.

[ Hits: 86.766 ]

Por: Alberto Federman Neto. em 03/07/2008 | Blog: https://ciencialivre.blog/


Instalando pacotes que não estão no Portage. Usando Ebuilds. Overlay Local



Ebuilds

Muitas vezes você quer instalar pacotes Trunk, Testing, Unstable ou Experimentais, ou ainda, programas muito novos cujas versões ainda não estão no Portage, ou estando, não foram ainda localizadas pois seu Portage não está atualizado (com emerge --sync) e você não quer fazê-lo, para não levar tempo demais e não fazer download de inúmeros pacotes.

Um método é usando um dos comandos de baixo nível do Portage. Os Ebuilds são arquivos script que mostram ao Portage onde encontrar e de onde baixar os fontes e como devem ser compilados adequadamente.

Suponhamos que você deseja instalar um pacote que não esteja ainda no Portage, ou uma versão diferente. Faça o seguinte: procure o ebuild do pacote na Net, por exemplo firefox.ebuild, baixe o Ebuild e salve em algum diretório, por exemplo no /home/usuario.

Muitos sites tem ebuilds prontos para Gentoo. No Zugaina por exemplo, pode ser encontrado o mais recente Compiz-Fusion. Os mirrors oficiais do Gentoo também contém os ebuilds.

Eventualmente Ebuilds de distros baseadas no Gentoo também podem ser usados.

Instalando o ebuild

Se o ebuild estiver pronto para uso, terá extensão .ebuild. Obviamente, se estiver comprimido (bz, bz2 etc) será preciso expandí-lo com Ark, com comando tar ou com Konqueror etc.
Obtido o Ebuild do pacote que quer instalar, proceder dessa maneira:

Crie uma lista para o Portage, uma Overlay, local e particular. Para isso, em modo root, adicione ao /etc/make.conf uma linha:

PORTDIR_OVERLAY="/usr/local/portage"

Será melhor manter os Overlays existentes. Se após instalação houver alguma problema, simplesmente comente (#) os outros Overlays, para não perdê-los. Gentoo pode trabalhar com vários overlays.

Se houverem vários overlays, seu make.conf deve estar mais ou menos assim:

PORTDIR_OVERLAY="/usr/local/portage"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage-bmg-main"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage-bmg-gnome"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage-gentoo-de"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage-fluidportage"

Ou assim:

PORTDIR_OVERLAY="/usr/local/portage-bmg-main /usr/local/portage-bmg-gnome"

Se não quiser editar o make.conf manualmente, execute como root o comando:

# echo PORTDIR_OVERLAY="/usr/local/portage" >> /etc/make.conf

Criado o seu Overlay, navegue até a pasta que tem seu Ebuild, poe exemplo:

$ su
# cd /home/usuario/meu ebuild


Não sabe se o seu Ebuild está mascarado? Como é novo, muito provável que esteja. Na dúvida, desmascare o ebuild:

# mkdir /etc/portage
# echo "app-portage/pacote" >> /etc/portage/package.keywords


Note que o nome do Ebuild é completo, e com o tipo de aplicação também. Agora crie a pasta do seu overlay local e pessoal, e crie subdiretórios adequados para armazenar os seus ebuilds, isto é, seu "Portage particular". Use a sequência se comandos, exemplo:

# mkdir /usr/local/portage
# mkdir /usr/local/portage/app-portage
# mkdir /usr/local/portage/app-portage/pasta pro meu pacote


Copie seu ebuild para o diretório do seu overlay, a lista do seu Portage:

# cp /home/usuario/meu_ebuild/nome_inteiro_do_meu_ebuild.ebuild /usr/local/portage/app-portage/pasta_pro_meu_pacote

Agora verifique a integridade do seu ebuild e todas as sua dependências e prepare-o para rodar:

# ebuild /usr/local/portage/app-portage/pasta_pacote/nome_inteiro_ebuild.ebuild digest

Finalmente, agora o Portage vai usar a lista do "seu Portage e instalar o pacote do seu Ebuild:

# emerge -av nome_inteiro_do_meu_pacote

Para mais detalhes, modificações, certas proteções etc, veja por exemplo:
Página anterior     Próxima página

Páginas do artigo
   1. Introdução. Usando o Portage. Método Geral.
   2. Instalando pacotes que não estão no Portage. Usando Ebuilds. Overlay Local
   3. Usando listas de pacotes para o Portage. Usando Overlays
   4. Usando SVN (Subversion) para baixar arquivos
   5. Usando tarballs, snapshots, pacotes de programas fonte de uso geral em Linux
   6. Usando sistema delta
   7. Fazendo e/ou usando binários compilados em Gentoo
   8. Outros métodos. Paludis, PkgCore e Entropy
   9. Advertências, precauções e conclusão
Outros artigos deste autor

As características de personalidade dos usuários de Linux

Os bons tempos voltaram! Revivendo e revisitando o WindowMaker

Para iniciantes: Deu tela preta? Não se desespere!

Firefox: Testando e/ou utilizando várias versões

Experimentos com remasterização de Sabayon

Leitura recomendada

Virtualbox - clonando e reduzindo o tamanho de HDs

ALSA

Apache - Compartilhamento de Recursos - VirtualHosts

Uma breve introdução ao Hydrogen

Copiando programas dos LiveCDs (Kurumin) para seu Debian sem usar a internet

  
Comentários
[1] Comentário enviado por maran em 03/07/2008 - 12:43h

Alberto, hoje você enriqueceu e muto a comunidade, so tenho a agradecer.
Fantástico.
Meus parábens, nem preciso fala pra onde foi né ;)

Abraços

[2] Comentário enviado por joseeeveraldo em 03/07/2008 - 18:21h

Excelente artigo agora ainda fiquei com uma dúvida. Se eu instalar um sistema completo e quiser atulalizá-lo completamente pelo portage eu deveria rodar emerge --sync e depois emerge --update world, mas vc não recomenda rodar esses comandos, em um istema com muitos arquivos. Qual maneira que vc me recomenda para atualizar meu portage e meu sistema sem riscos

[3] Comentário enviado por removido em 04/07/2008 - 00:35h

muito bom !!!!!!!

[4] Comentário enviado por gnomo_dead em 04/07/2008 - 01:56h

joseeveraldo, eu nunca tive problemas em rodar um emerge --sync && emerge -uDN world, sinceramente pra mim nao vejo problema algum em fazer atualizaçao com muitos pacotes velhos, o unico problema eh q vc vai ter muita coisa pra compilar...
pra explica, o -u eh update, o -D eh deep, pra ir a fundo nas atualizaçoes, pelo q eu entendi, me corrijam se eu estiver errado, se nao colocar o -D ele nao vai atualizar as dependencias dos pacotes no world, o world eh a lista de pacotes q vc instalou na mao, e o -N eh pra recompilar tudo q tem use flags novas.
Espero ter ajudado

[5] Comentário enviado por loucos88 em 04/07/2008 - 09:25h

Cara, tentei uma vez instalar o Gentoo em minha maquina e acabei por tomar uma surra que nunca vou esquecer, mas uma coisa te digo, consegui instalar e foi a distro que mais me ensinou sobre linux até hoje.

com toda certeza esse artigo irá ajudar muitas pessoas por ai

valew

[6] Comentário enviado por albfneto em 07/07/2008 - 16:29h

Bom.não recomendo rodar emerge --sync, nem comandos world, em um Gentoo com muita coisa instalada, grande, ou no sabayon, que tambpem é grande.
Não recomendo pq. vai ter muita coisa a ser compilada, e vai demorar e ainda, vai ter muitos pacotes mascarados!
ex... rodado o comando emerge --update world... aí vc quer atualizar seu gnome, por ex... vai ter muita coisa mascarada!
recomendo sim, que primeiro faça emerge dos pacotes que gosta, que vai usar na prática, e depois, quando o sistema estiver rodando redondo pra vc, aí vc faz emerge --sync, por ex. ..
Isto é rodar sincroniuzação, depois da maioria das coisas instaladas, principalmente, se vc. como eu gosta de usar pacotes unstable or testing, como o último ompiz-fusion.
Espero ter esclarescido, é mais prático atualizar seus pacotes usuais, antes de emerge --sync, senão pode demorar e vc pode ter muita coisa mascarada!
isso é particularmente recomendado, no Sabayon, pq o sabayon é muito grande!
Agora, tem usuários de Gentoo, que gostam de poucos apliocativos e um sistema muito rápido, pq a velocidade de execução de um Gentoo enxuto, espanta, aí pode sincronizar na boa. Isto é se vc usa sei lá 40 pacotes, não há problema, mas 400 sim!
agora comandos que removem as dependencias, esses são arriscados, pq vc pode ter pacotes quebrados!
O Gentoo é um Linux fantástico, poderoso, mas é um pouco comoa namorada da gente... exigente , um tanto quanto instável e fácil de ser detonado! rsrrsrs!
Isto é entenderam, o que recomendo é deixar a sincronização para ser rodada no sistama já bem ajeitado.

[7] Comentário enviado por albfneto em 07/07/2008 - 19:33h

Sobre as desvantagens d atualizar tudo, em sistemas com muita coisa instalada(mesmo que em Ubuntu,um Debian!!) e mais ainda se vc compila muita coisa, veja o comentário de Nicolo, na resposta ao tópico:

http://www.vivaolinux.com.br/comunidades/verTopico.php?codigo=82&codtopico=22671

Jose everaldo, minha sugestão é exatamente somente rodar os comandos de profunda atualização, com sync, world. depois do seu sistama estar completo, mais ou menos acertado, com muitos dos pacotes que vc quer já atualizados, ou seja recomendo atualizar, por ex, KDE, GNOME, XFCE, K3b etc... antes., quando estiver redondo, aí roda emerge --sync, por ex.
Se vc tiver, de maniera geral, por ex, 5000 pacotes no seu sabayon ou gentoo e fizer um comando de opção world ou deep, pode ficar atualizado, mas pode ter dezenas de pacotes bloqueados, dificultando atualizações posteriores.
Para alguns problemas após emerge sync, comandos com opção world, em sistemas grandes e parcialmente cofigurados, principalmente de Sabayon,mais do que de gentoo, (pq o instalador de sabayon já compila e instala muita coisa) veja, por exemplo:
http://osdir.com/ml/linux.gentoo.proaudio/2006-11/msg00007.html
http://osdir.com/ml/gentoo.user.brazilian/2006-02/msg00094.html
http://www.sabayonlinux.org/forum/viewtopic.php?f=5&t=229
http://www.linode.com/forums/archive/o_t/t_793/bug_fixed_gentoo_emerge_broken_after_emerge_sync_.htm...
http://www.sabayonlinux.org/forum/viewtopic.php?f=5&t=10453
http://groups.google.com/group/alt.os.linux.gentoo/browse_thread/thread/24aea75fe885eb93/3b140f79bc8...
http://www.techzonept.com/showthread.php?t=126363&highlight=Sabayon&page=3

se algume lê Italiano, mais um problema recente de umusuario de Sabayon, após um comando deatualização profunda tipo world... Porisso que não aconselho:

http://www.sabayonlinux.org/forum/viewtopic.php?f=22&t=13389&p=76530&hilit=slot+conflict#p76530


Porisso que recomendo primeiro atualizar e instalar antes os pacotes que a pessoa gosta e usa mais, principlamnte se vc gosta de testar pacotes unstable que não estão ainda no portage, por ex. após emerge sync,pode não ser fácil instalar um XFCE experimental, mais novo que aquele do portage.

[8] Comentário enviado por albfneto em 08/10/2008 - 23:04h

Dicas sôbre o novo Portage.
Após a versão 19 (atual é a 20), o Portage tem alguns novos comandos. Se voce for instalar um pacote grande, e não tiver muitos pacotes bloqueados ou colisões, voce pode pular esses arquivos, e poderá ter um sistema ou pacote rodando,apesar de alguns poucos erros.
Para isso, rode o emerge com a opção Keep Going. Créditos a zapmedico, inventor do comando, um dos mantenedores do Portage na Fundação Gentoo:

$ su
# emerge -s Nome do Pacote]
# emerge -p Nome do Pacote
# emerge --ask --verbose --keep-going Nome do Pacote

[9] Comentário enviado por albfneto em 04/02/2009 - 04:42h

Aqui uma mini dica:

Conheço também este artigo, muito didático, só que está em inglês.
tem até um jeito automatico de usar layman para criar os overlays em Gentoo

http://learn.clemsonlinux.org/wiki/Gentoo:Overlays#Automatic_Creation

[10] Comentário enviado por albfneto em 16/02/2009 - 19:33h

Adendos ao artigo:

1) PORTAGE AVISA QUE FALTAM DEPENDÊNCIAS

Uma das coisas boas do portage, é que ele te avisa do que precisa instalar.
exemplo ao emergir git no gentoo:
Recebi essas mensagens:

Installing dev-util/git-1.6.1.3
* These additional scripts need some dependencies:

* git-quiltimport : dev-util/quilt
* git-instaweb : || ( www-servers/lighttpd www-servers/apache )

isso me indicou que o sistema pedia atualizar quilt, lighttpd e apache. Assim,é so'fazer o comando:

# emerge dev-util/quilt www-servers/lighttpd www-servers/apache

2) SE VOCÊ NÃO TEM REDE, OU QUER INSTALAR RÁPIDO ALGUM PACOTE, MANUALMENTE:

É simples, vamos exemplificar com o pacote Bash, a Shell.
Baixe o último ebuild do repositório,e garve, por exemplo no seu Pen-Drive Para o Bash, baixe de:

http://gentoo-portage.com/app-shells/bash

e baixe o Ebuild mais novo, para sua arquitetura.
Copie para um local adequado do Portage. para o Bash:

/usr/portage/app-shells/bash

e salve.Aí, é só rodar o comando emerge;

# emerge -a -v bash

O gerenciador de arquivos completo Krusader, ajuda muito nessa tarefa:

http://www.vivaolinux.com.br/dica/Krusader-2.0.0-Phoenix-Egg-Gerenciador-de-arquivos-completo-para-o...




[11] Comentário enviado por xerxeslins em 22/05/2009 - 15:45h

Uhull! estou apanhando muito no Gentoo instalado a menos de uma semana. Resolvi atualizar tudo depois de um tempo, antes do sistema ficar redondo, e o que deu? erros e mais erros na compilação de uns pacotes posteriores.

Agora eu to começando a entender, não se pode dar um update geral com tranquilidade, como no slackware, é preciso atualizar os aplicativos conforme o uso.

Agora eu dei um "update world" pra recompilar tudo para ver se resolve o problema dos erros.

vamos ver o que vai dar...

Seu artigo é excelente!

parabéns e obrigado por compartilhar esse conhecimento.

[12] Comentário enviado por albfneto em 22/06/2009 - 14:40h

ADENDO AO ARTIGO.

PACOTES SEMPRE ÚTEIS E ESSENCIAIS, E QUE DEVEM SER ATUALIZADOS OU INSTALADOS

Aqui, sugiro a instalação de alguns pacotes, que não vem instalados por default, e que são muito úteis para quem trabalha com o Gentoo.
alguns exemplos, são o EIX, um pacote que acha qualquer outro pacote, no micro, no Portage, nos overlays etc... e ainda indica a versão instalada, as disponíveis e se são "deperecated" ou não, se serão fácilmente instaláveis ou não; e um substituto do emerge -s, que usa índice, o esearch
E também, pacotes cuja atualização é absolutamente necessária.

Portanto, de vez em quando, faça os comandos abaixo em seu Gentoo, para mante-lo sempre redondo:

# emerge --sync
# emerge portage portato
# emerge -avu autoconf automake mirrorselect make cmake autounmask esearch eselect demerge eix qmake mirrorselect python-updater bash eselect=opengl eselect-python portage-utils gentoolkit portato gcc-config module-rebuild subversion git dispatch-conf etc-proposals
#emerge -av gtk+ qt python pygtk PyQt glibs
# emerge gcc gcc-config

(demora bastante, mas importante, porque é o compilador)

Lembre que somente se solicitado, rode os comandos etc-update ou dispatch-conf ou etc-proposals e os comandos revdep-rebuild

[13] Comentário enviado por albfneto em 16/07/2009 - 14:08h

ADENDOS AO ARTIGO 2a PARTE

1) Artigos que complementam o meu:

http://www.vivaolinux.com.br/artigo/PORTAGE-Gerenciamento-de-pacotes-no-Gentoo-Linux?pagina=3

http://www.vivaolinux.com.br/dica/Gentoo-overlay-do-portage-no-diretorio-pessoal/

2) Para achar as versões mais recentes do Portage, e todos os pacotes que o Portage tem, veja nestes endereços de rede:

http://packages.gentoo.org/

http://www.gentoo-portage.com/

3) Porém há muitos outros pacotes nos Overlays.

Neste endereço, um jeito fácil de achar Ebuilds para Gentoo que estão nos Overlays, e não no Portage padrão:

http://www.ebuildfind.net/

4) Aqui, também referências e links de como usar o Layman e os Overlays do Gentoo.

Bem explicado e com links para outros índices para achar pacotes para o Gentoo:

http://en.gentoo-wiki.com/wiki/Overlay

5) Para achar pacotes nos Overlays e no Portage, também pode usar estes links:

http://gpo.zugaina.org/AdvSearch

http://bugs.gentoo.org/

Cortesia de FulloTone, Site SabayonMania Forum, Itália.

6) Para achar Pacotes Linux em Geral, procure em:

http://www.filewatcher.com/

[14] Comentário enviado por meinhardt_jgbr em 30/03/2010 - 12:34h

Estimado Alberto,

Excelente seu artigo!!

Com certeza um grande auxilio para todos aqueles que como eu estão se aventurando no mundo Gentoo, mesmo que ainda seja via um Gentoo Like, no caso o Librix 4.0

Estou pesquisando agora, algum meio de fazer uma faxina na minha instalação pois a minha partição raiz está com quase 7GB ficando com apenas algo em torno de 300Mb livres.

Parabéns!!

[15] Comentário enviado por albfneto em 14/04/2010 - 13:36h

Meinhard, o jeito de instalar pacotes no Librix, é o mesmo do Gentoo

O espaço de disco, as Distros Gentoo like maiores, como o Sabayon, o Librix, o VidaLinux e o toorox, precisam de muito espaço de disco.

O Gentoo também se vc tiver muita coisa instalada ou usar muitos Overlays.

O espaço necessário pode ser até maior que o do /home.

Geralmente, Librix, Sabayon, VidaLinux, precisam de uns 20 giga, recomendado 30, ou mesmo mais...

Mesmo alguns Linux Red-Hat, não Gentoo, como o Mandriva Free e o OpenSUSE, são bastante grandes;

[16] Comentário enviado por Lisandro em 05/05/2010 - 14:47h

Beleza de artigo.

[17] Comentário enviado por Lisandro em 28/05/2010 - 08:30h

Excelente!

[18] Comentário enviado por giuzao em 15/02/2011 - 18:23h

Excelente artigo! Hoje em dia está mais fácil de instalar o gentoo...
dificil era quando ainda era stage1 e tinha que fazer bootstrap....hehehe

[19] Comentário enviado por mzibit em 18/08/2011 - 23:00h

Baita artigo, Favoritado!
Gentoo é uma ótima distribuição, leve, estável e bastante modular.
Parabéns pelo guia.

[20] Comentário enviado por ivanofx em 24/02/2015 - 15:07h

Meu Sabayn não possui o arquivo "/etc/make.conf". Como proceder?

[21] Comentário enviado por ivanofx em 24/02/2015 - 15:31h


[20] Comentário enviado por ivanofx em 24/02/2015 - 15:07h

Meu Sabayn não possui o arquivo "/etc/make.conf". Como proceder?


O arquivo estava em "/etc/portage/make.conf".
Aqui a "Pasta_pro_meu_pacote" tem que ter o nome do ebuild. Por exemplo, se o ebuild é algumacoisa-3.1.43.ebuild, a pasta deverá ter o nome "algumacoisa".
Meu problema agora está no penúltimo comando. O terminal me mostra uma mensagem de erro:

* ERROR: app-portage/umplayer-0.95::user_defined failed (depend phase):
* qt4-r2.eclass could not be found by inherit()
*
* Call stack:
* ebuild.sh, line 550: Called source '/usr/local/portage/app-portage/umplayer/umplayer-0.95.ebuild'
* umplayer-0.95.ebuild, line 7: Called inherit 'qt4-r2' 'subversion'
* ebuild.sh, line 257: Called die
* The specific snippet of code:
* [[ -z ${location} ]] && die "${1}.eclass could not be found by inherit()"
*
* If you need support, post the output of `emerge --info '=app-portage/umplayer-0.95::user_defined'`,
* the complete build log and the output of `emerge -pqv '=app-portage/umplayer-0.95::user_defined'`.
* Working directory: '/usr/lib64/python2.7/site-packages'
* S: '/var/tmp/portage/app-portage/umplayer-0.95/work/umplayer-0.95'

O que será isso?

[22] Comentário enviado por xerxeslins em 08/06/2015 - 10:46h

Somente hoje eu favoritei esse artigo.

Estou usando Funtoo e quebrando a cabeça com 28 pacotes bloqueados hahaha

noob só faz noobisse


--
Só digo uma coisa: num digo é nada. E digo mais: só digo isso.

[23] Comentário enviado por mariojuniorjp em 29/12/2019 - 16:18h

Esse artigo merece 1 milhão de estrelas! Show de bola!

[24] Comentário enviado por JoaoVazquez em 14/12/2020 - 17:40h

Artigo excelente!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts