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.789 ]

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


Introdução. Usando o Portage. Método Geral.



Foge ao escopo deste artigo prático, definir ou situar a nomenclatura e natureza do Emerge, do Portage e de cada tipo de repositório ou protocolo de instalação usado pelo Gentoo.

Para ver detalhes e o que são Portage, Ebuild, Emerge, Entropy, Overlay, FLAGS etc.veja o Manual do Gentoo ou pesquise na Internet. Há farta documentação.

Espelhos

Vamos agora iniciar a configuração dos espelhos. Embora muitos dos repositórios serem ótimos, você pode querer utilizar os mirrors que considera mais rápidos, ou mais próximos etc. Basta logar como root usando su e senha e executar:

# mirrorselect -i

Escolhendo por exemplo o repositório geral (rsync) da América do Sul. A seguir, execute:

# mirrorselect -i -r

E escolha, por exemplo os mirrors oficiais do Gentoo no Brasil. São:

http://www.las.ic.unicamp.br/pub/gentoo
ftp://ftp.las.ic.unicamp.br/pub/gentoo

Os mirrors ftp, atualmente são menos usados e costumam ser mais livres. Como root, edite o arquivo /etc/make.conf, colocando em ordem de prioridade os espelhos. O que aparece me primeiro lugar, será usado como default: edite a linha Gentoo Mirrors. Um exemplo abaixo:

SYNC="rsync://rsync.samerica.gentoo.org/gentoo-portage"
GENTOO_MIRRORS=" http://www.las.ic.unicamp.br/pub/gentoo" ftp://ftp.las.ic.unicamp.br/pub/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo"

Também se pode usar somente um rsync como mirror geral, e o sistema procurará em todo o Mundo, pelo mirror mais livre. Detalhes em:

Atualizando importantes pacotes

Se o seu Gentoo não estiver bem atualizado, pode ser interessante atualizar o compilador e linguagens que o seu sistema usa.

$ su
# emerge --sync
(com muita coisa já instalada, veja Advertências!)
# emerge portage
# emerge gcc
# emerge gcc+
# emerge gtk
# emerge gtk+
# emerge python
# emerge autoconf
# emerge automake


Se planeja empregar frontends gráficos de portage:

# emerge kuroo
# emerge porthole
# emerge portato


Instalando pacotes

Daqui para frente o NOME DO PACOTE a ser instalado, sua versão etc, para efeito de simplicidade, será representado por: "pacote". Para fazer instalações, basta substituir "pacote" pelo nome completo do pacote, incluindo, versão etc.

O processo mais fácil, mais clássico, recomendado e mais seguro de instalar pacotes no Gentoo, é usando a lista de pacotes estáveis e testados do sistema Portage:

emerge -av pacote ou LINGUAS=pt_BR emerge pacote

Uma das características fantásticas do Gentoo é poder fazer alterações das FLAGS de compilação e com isso, modificar seu pacote, otimizá-lo, mesmo que já instalado, basta recompilar! Essas FLAGS podem ser colocadas diretamente no /etc/make.conf ou antes do comando emerge, como visto acima.

Usando a FLAG de compilação LINGUAS, o sistema vai procurar o fonte e compilar para português do Brasil se isto for possível.

O comando emerge, com opção sync, sincroniza os pacotes, através de um servidor geral rsync, que localiza os mirrors e atualiza a árvore (lista) do Portage e também atualiza todos os pacotes do sistema.

Em sistemas grandes já com muitos pacotes instalados, pode ser melhor rodar antes do emerge --sync, emerge pacote, pois não serão criados tantos problemas com dezenas de pacotes bloqueados ou mascarados.

Atualizando lista do portage

Desejando atualizar apenas a árvore, a lista e não instalar os pacotes, rode antes de:

emerge pacote

os comandos:

# emerge layman

(somente se o seu sistema não tem nenhum Overlay, rode o comando entre parêntesis, pule se já houver Overlay....

# echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
# layman -S
# emerge portage


Isto somente atualiza todos os Overlays do sistema e apenas lista de pacotes do Gentoo.

Vendo a lista do portage

Para ver a lista de arquivos do Portage, use:

# emerge --search ou emerge -s

Também se pode usar os utilitários EIX e ESEARCH:

$ su # emerge gentoolkit
# emerge aix
# emerge esearch
# esearch
(ou aix) pacote

Apenas fingindo instalar

Voltando ao Emerge, para apenas simular a instalação, sem efetivamente instalar os pacotes, use o camando:

# emerge --pretend pacote
ou
# emerge -p pacote

Isto apenas simulará a atualização e mostrará pacotes que bloqueiam ou mascaram o que vai ser instalado. O comando "emerge pacote" é substitutivo. O pacote atualizado ficará no local do pacote anteriormente instalado.

Apagando pacotes

Para somente deletar um pacote, sem instalar a versão nova, utilize o comando:

# emerge --unmerge pacote
ou
emerge -C pacote

Não é bom utilizar com pacotes muito grandes, como o GNOME, porque pode apagar dependências necessárias, criando pacotes quebrados. Lembre-se, em Linux, você nunca tem certeza do que pode apagar!

O Emerge é o principal comando do sistema Portage e tem alta potencialidade. Para conhecer todas as opções do Portage e do comando emerge, detalhes etc, veja:

Máscaras

Ao usar o emerge você pode ter problemas com pacotes mascarados. Se você estiver com uma versão velha, stable e a versão nova for de teste, ou instável, o sistema vai mascarar, porque os desenvolvedores do Gentoo sugerem que você use sempre os pacotes estáveis, em uso rotineiro.
Há vários jeitos de resolver.

Tirando o pacote mascarador:

$ su
# emerge -C <pacote que está mascarando o que quer instalar>
# emerge pacote


Ou desmascare o pacote manualmente:

# echo pacote >> /etc/portage/package.keywords

Esse comando grava o nome do pacote no arquivo /etc/portage/package.keywords, desmascarando-o.
Pode ser muito mais prático, se você instala muita coisa, ou pacotes grandes, utilizar o autounmask:

$ su
# emerge autounmask
# autounmask pacote

ou
# autounmask -n pacote
# emerge -vp pacote
# emerge pacote


A opção -n no autounmask, vai desmascarar todas as versões e dependências. As opções vp no emerge mostram a possível compilação e as FLAGS que serão usadas.

Abaixo, exemplos de como se pode desmascarar e instalar programas, incluindo KDE4 e Compiz Fusion, no Gentoo:
    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

Associando teclas a comandos, tarefas ou aplicativos... com toda facilidade

Fish - Um shell fácil de usar

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

Alternativas ao Google - Sites de busca e motores de procura

Instalando e Usando a Versão Mais Recente do BleachBit no Linux

Leitura recomendada

VirtualBox 2.1.0: Rede no VirtualBox agora é fácil!

Software envelhece?

Utilizando GNU/Autotools em Projetos

QTParted - Particionador gráfico, simples e fácil

Integrando Asterisk ao PABX através de placa de fax modem

  
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