Sabayon e Gentoo. Modernizando o Portage.


Autoria de Alberto Federman Neto, albfneto

5 de Maio de 2017.

Observação: Artigo Obsoleto. Tem dois anos (2015). Agora, tanto em Sabayon, como em Gentoo, o Portage padrão, já é o moderno.

Aqueles que usam Sabayon Linux, e/ou leram meus Artigos ou Dicas, já sabem que ele (sendo uma Distro derivada do Gentoo), usa o Instalador de Pacotes Binários e Semi-Binários Entropy, mas também pode usar (como o próprio Gentoo), o Instalador de Pacotes e Compilador Automático, o Portage.

Recentemente (após a Versão 2.2.16, está na versão 2.2.20), o Portage e seu uso, configuração e infraestrutura de sincronização foram bastante modificados, modernizados, e este Artigo trata disso, como modernizar seu Portage clássico, em Sabayon e Gentoo.

Advirto porém que não se aplica ao Portage do Funtoo, que é diferente, e exclusivamente orientado para usar GIT. Portanto, aplique e use somente no Portage do Sabayon ou do Gentoo.

Também copie cada um dos arquivos originais antigos e edite cada arquivo com cuidado, porque ser errar, ou seu Portage ou seus Overlays não irão sincronizar.

Vamos ao Passo a Passo:

Ponto de Partida: Sabayon ou Gentoo instalado, com make.conf editado (há vários Tutoriais)

1. ATUALIZAR PORTAGE:

Necessário para ter a versão mais recente, ou pelo menos uma versão acima da 2.2.16.

1.1 Em Gentoo:

Em Gentoo, é fácil:

# emerge --sync
# emerge -av --oneshot portage

1.2 Em Sabayon:

Em Sabayon, necessita primeiro editar (como root) o arquivo /etc/entropy/client.conf . Nele, procure pela linha escrito “ignore pseudodowngrades” e troque “disable” por “enable”. Se não o fizer, seu Sabayon vai começar a propor downgrade de pacotes e não upgrade.

Agora, lembre que sabayon usa Portage 2.2.18 e não 2.2.20. Atualize. Se o fizer direto, terá um erro de EAPI, porque Sabayon e Gentoo usam EAPIs diferentes. Para driblar isso, faça a atualização do Portage sem as dependências. Atualize os Repositórios e os Overlays do Sabayon e instale o novo Portage, tudo isso executando:

# equo up
# emerge --sync
# emerge -av --oneshot --nodeps portage
# layman -S

2.  ATUALIZAR O Layman:

Layman é o pacote que atualiza os Overlays. Precisa ser Versão nova, 2.3.0 .

Os Antigos não funcionarão. Atualize o Layman. Tanto em Sabayon como em Gentoo:

# emerge -av layman

A Partir daqui, modifiquei (para ambas as Distros) o procedimento da Excelente Documentação do Gentoo, sempre útil. Minha principal modificação foi copiar os arquivos antigos, invés de deletá-los ou de editá-los  diretamente. Acho mais seguro.

2.1 Configurando o novo Layman:

Edite o Arquivo /etc/portage/package.use , colocando a linha:

app-portage/layman sync-plugin-portage

Agora . edite o arquivo /etc/layman/layman.cfg , e nele coloque esta linha:

conf-type : repos.conf

Importante que mantenha todas as outras linhas dentro desse arquivo. em Gentoo , são poucas, mas em Sabayon, são várias. Não apague nada!

Rode o comando:

# layman-updater -R

Esses comandos dos Ítens 2 e 2.1, farão funcionar o módulo laymansync, o novo Sincronizador dos Overlays (Veja Ítem 3.2)

3. MODIFICANDO ARQUIVOS DE CONFIGURAÇÃO:

Procure pelo DIRETÓRIO (pode ser arquivo, mas a documentação recomenda usar o diretório): /etc/portage/repos.conf . Se ele não existir o crie:

# mkdir /etc/portage/repos.conf

Nessa Pasta, crie (ou só edite, se já existirem) dois arquivos: gentoo.conf e layman.conf ;

# touch /etc/portage/repos.conf/gentoo.conf
# touch /etc/portage/repos.conf/layman.conf

Um outro jeito de criar um arquivo gentoo.conf para depois editar, é copiá-lo de um   outro ARQUIVO, não DIRETÓRIO, repos.conf  do portage antigo:

# cp /usr/share/portage/config/repos.conf /etc/portage/repos.conf/gentoo.conf

Aqui começa brincadeira legal! Portage antigos só sincronizavam com RSYNC, mas os novos podem sincronizar e automáticamente, com WebRsync, com GIT, com o RSYNC clássico e até com SVN!

Eu, como sou um Dinossauro de Portage, uso o RSYNC clássico, mas o exemplo mostra as outras possibilidades. Edite o arquivo /etc/portage/repos.conf/gentoo.conf e deixe-o com quiser sincronizar seu Portage:

3.1 Arquivo /etc/portage/repos.conf/gentoo.conf :

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage

# Sincronizadores. O que uso é RSYNC,mas:
sync-type = rsync #OU
# sync-type = svn #OU
# sync-type = git # OU AINDA
# sync-type = websync #(Ate Portage-2.2.18)OU
# sync-type = webrsync#(Apos Portage-2.2.19)

# Meu Servidor RSYNC Principal, RSYNC Gentoo Sul-Americano:
# Precisa colocar o endereco do Servidor de Sincronização que vai usar,
# e o tipo, se usar svn, etc...
sync-uri = rsync://rsync.samerica.gentoo.org/gentoo-portage

# Só use se usar GIT, consulte a documentação:
# https://wiki.gentoo.org/wiki/Project:Portage/Sync
# sync-depth = n (n=0,1,2 or 3)

# auto sincronização
auto-sync = yes #default is yes. Possible values are yes, no, true, false 

# só use se for em Gentoo para Live CD:
# for daily squashfs snapshots
#sync-type = squashdelta
#sync-uri = mirror://gentoo/../snapshots/squashfs

3.2 Arquivo /etc/portage/repos.conf/layman.conf :

Eu uso no Sabayon, apenas os Overlays dele: sabayon e sabayon-distro e dois Overlays de Gentoo: Sunrise e Zugaina. Instale os Overlays que quiser. O exemplo mostra  como. Execute os comandos:

# layman -L # Mostra todos os Overlays
# layman -a sabayon-distro # Use aqui o nome do Overlay que quiser
# layman -a sabayon
# layman -a sunrise
# layman -a zugaina

Edite agora o Arquivo /etc/portage/repos.conf/layman.conf . Para identificar os parâmetros, tipo, sync-uri etc… use o comando “layman -L“.

O Exemplo esclarece, mas note que você precisa de linhas para cada um dos Overlays que adicionou:

[sabayon]
priority = 50
location = /var/lib/layman/sabayon
# O tipo de Sincronizador que o Overlay usa. Não pode ser qualquer um
layman-type = git
# Não necessário, se você desativar a sincronização auto
sync-type = laymansync
sync-uri = git://github.com/Sabayon/for-gentoo.git
# auto-sincronização, comente se tiver erros
auto-sync = Yes

[sabayon-distro]
priority = 50
location = /var/lib/layman/sabayon-distro
layman-type = git
sync-type = laymansync
sync-uri = git://github.com/Sabayon/sabayon-distro.git
auto-sync = Yes

[sunrise]
priority = 50
location = /var/lib/layman/sunrise
layman-type = git
sync-type = laymansync
sync-uri = git://anongit.gentoo.org/proj/sunrise-reviewed.git
auto-sync = Yes

[zugaina]
priority = 50
location = /var/lib/layman/zugaina
layman-type = rsync
sync-type = laymansync
sync-uri = rsync://gentoo.zugaina.org/zugaina-portage
auto-sync = Yes

Se quiser ainda pode usar Pós-Sincronização, consulte sôbre os Diretórios  postsync.d e repo.postsync.d, na Documentação do Project Portage/Sync  .

4.  CONFIGURAÇÕES FINAIS:

Mova o Arquivo /var/lib/layman/make.conf antigo, para uma cópia protegida. Isso o remove:

# mv /var/lib/layman/make.conf /var/lib/layman/make.conf.original

Finalmente, algumas FLAGS e parâmetros do seu Arquivo /etc/portage/make.conf (em Sabayons e Gentoos antigos, pode ser o /etc/make.conf) mudaram!

Comente a FLAG RSYNC (agora deprecada), e deixe apenas os Repositórios normais. Também comente a linha que se refere ao diretório original do layman. As modificações ficarão algo assim:

# RSYNCs, Sincronização. Comente se não quiser usar (para usar um unico espelho).
# O primeiro é da América Latina, depois Brasil, gerais e locais, e gentoo geral mas use apenas um e comente os outros:
# SYNC é deprecado, comentar;
# RSYNC que eu usava, comentei:
# SYNC="rsync://rsync.samerica.gentoo.org/gentoo-portage"
$ Outros RSYNC,já eram comentados. remova se quiser
# SYNC="rsync://rsync.br.gentoo.org"
# SYNC="rsync://rsync1.br.gentoo.org/"
# SYNC="rsync://rsync2.br.gentoo.org/"
# SYNC="rsync://gentoo.c3sl.ufpr.br/gentoo/"
# SYNC="rsync://gentoo.lcc.ufmg.br/gentoo-sources"
# SYNC="rsync://rsync.gentoo.org/"

# Mirrors do Gentoo Atualizados. Pela ordem de uso preferencial: Brasil, depois
# Argentina,depois Ibiblio Internacional e Ibiblio EUA. Se preferir
# outros espelhos, modifique ou comente (com #) caso queira
# apenas usar o RSYNC.
# Também pode selecionar os espelhos com o comando "mirrorselect":
# Gentoo Espelhos, deixe-os. Eu uso o da UNICAMP como padrão:

GENTOO_MIRRORS="ftp://ftp.las.ic.unicamp.br/pub/gentoo/
 http://www.las.ic.unicamp.br/pub/gentoo/
 ftp://gentoo.c3sl.ufpr.br/gentoo/
 http://gentoo.c3sl.ufpr.br/
 http://gentoo.lcc.ufmg.br/
 ftp://mirrors.localhost.net.ar/pub/mirrors/gentoo
 http://gentoo.localhost.net.ar/
 http://ibiblio.org/pub/Linux/MIRRORS.html
 ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/
 http://distro.ibiblio.org/pub/linux/distributions/gentoo/"

# Estas configurações, deixe:
PORTDIR="/usr/portage"

# Dir Layman Alternativo,Overlay local,já comentado.
$ só se usa para manter Overlay local, quando se instala
# pacotes por esse método:
# PORTDIR_OVERLAY="/usr/portage"

# Dir Layman Normal manter:
 PORTDIR_OVERLAY="/var/lib/layman"

# Aqui comente, só o Layman antigo usava:
# If you have added overlays with layman, this line must be below the PORTDIR_OVERLAY line:
# source /var/lib/layman/make.conf

Resumindo, comente no seu make.conf as linhas de RSYNC e  desative o “make.conf alternativo do Layman

5. AJUSTES FINAIS:

Ajuste as variáveis de ambiente e, em Sabayon compatibilize o Portage com o Entropy:

# env-update
$ source /etc/profile #(em Sabayon, nunca execute como Root)
# equo rescue spmsync

6. TESTES:

Após toda essa trabalheira…. Rs!

Eis meu Sabayon, sincronizando os Repositórios do novo Portage e os Overlays:

# emerge --sync                                               
>>> Syncing repository 'gentoo' into '/usr/portage'...                                             
>>> Starting rsync with rsync://143.106.60.118/gentoo-portage...                                   
server name: rsync.las.ic.unicamp.br                                                               
server IP: 143.106.60.118                                                                          
server specs: Intel Core2 Quad 2.33GHz 8GB RAM                                                     
bandwidth: 1000 Mbps                                                                               
server location: Campinas, Sao Paulo, Brasil                                                       
contact name: Web Admin <web_at_las.ic.unicamp.br> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
rl-core/Test-Harness/Test-Harness-3.290.0.ebuild                                                 
perl-core/Test-Simple/ChangeLog                                                                    
perl-core/Test-Simple/Manifest                                                                     
perl-core/Test-Simple/Test-Simple-0.980.0-r1.ebuild
perl-core/Text-ParseWords/ChangeLog
perl-core/Text-ParseWords/Manifest
perl-core/Thread-Queue/ChangeLog
perl-core/Thread-Queue/Manifest
perl-core/Thread-Queue/Thread-Queue-3.20.0.ebuild
perl-core/Time-HiRes/ChangeLog
perl-core/Time-HiRes/Manifest
perl-core/Time-Piece/ChangeLog
perl-core/Time-Piece/Manifest
perl-core/Time-Piece/Time-Piece-1.20-r1.ebuild
profiles/ChangeLog
profiles/package.mask
profiles/use.local.desc
profiles/arch/powerpc/ChangeLog
profiles/arch/powerpc/package.use.mask  

# layman -S                                                   

 * Fetching remote list...
 * Fetch Ok

 * Syncing selected overlay(s)...
 * Running Git... # ( cd /var/lib/layman/sabayon  && /usr/bin/git pull )
remote: Counting objects: 25, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 25 (delta 6), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (25/25), done.
From git://github.com/Sabayon/for-gentoo
   dda1d72..5def876  master     -> origin/master
Updating dda1d72..5def876
Fast-forward
 app-admin/calamares/calamares-1.1_rc1-r1.ebuild                |  77 ++++++++++++++++++++
 app-admin/calamares/calamares-9999.ebuild                      |  77 ++++++++++++++++++++
 app-admin/calamares/metadata.xml                               |   8 ++
 dev-java/jinput/ChangeLog                                      |  12 ---
 dev-java/jinput/Manifest                                       |   1 -
 dev-java/jinput/jinput-1_pre20100416.ebuild                    |  44 -----------
 dev-java/jinput/metadata.xml                                   |  16 ----
 dev-java/jutils/ChangeLog                                      |   8 --
 dev-java/jutils/Manifest                                       |   1 -
 dev-java/jutils/jutils-1_pre20070306.ebuild                    |  39 ----------
 dev-java/jutils/metadata.xml                                   |  15 ----
 dev-java/lwjgl/ChangeLog                                       |  25 -------
 dev-java/lwjgl/Manifest                                        |   3 -
 dev-java/lwjgl/files/fix-linux-build.patch                     | 109 ----------------------------
 dev-java/lwjgl/lwjgl-1.0.ebuild                                |  66 -----------------
 dev-java/lwjgl/lwjgl-1.0_beta3.ebuild                          |  74 -------------------
 dev-java/lwjgl/lwjgl-2.6-r1.ebuild                             |  67 -----------------
 dev-java/lwjgl/metadata.xml                                    |  18 -----
 www-apache/mod_python/Manifest                                 |   1 +
 www-apache/mod_python/files/16_mod_python.conf                 |  33 +++++++++
 www-apache/mod_python/files/mod_python-3.5.0-buildsystem.patch |  35 +++++++++
 .../mod_python/files/mod_python-3.5.0-no-git-version.patch     |  10 +++
 www-apache/mod_python/metadata.xml                             |  21 ++++++
 www-apache/mod_python/mod_python-3.5.0.ebuild                  |  54 ++++++++++++++
 24 files changed, 316 insertions(+), 498 deletions(-)
 create mode 100644 app-admin/calamares/calamares-1.1_rc1-r1.ebuild
 create mode 100644 app-admin/calamares/calamares-9999.ebuild
 create mode 100644 app-admin/calamares/metadata.xml
 delete mode 100644 dev-java/jinput/ChangeLog
 delete mode 100644 dev-java/jinput/Manifest
 delete mode 100644 dev-java/jinput/jinput-1_pre20100416.ebuild
 delete mode 100644 dev-java/jinput/metadata.xml
 delete mode 100644 dev-java/jutils/ChangeLog
 delete mode 100644 dev-java/jutils/Manifest
 delete mode 100644 dev-java/jutils/jutils-1_pre20070306.ebuild
 delete mode 100644 dev-java/jutils/metadata.xml
 delete mode 100644 dev-java/lwjgl/ChangeLog
 delete mode 100644 dev-java/lwjg
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sent 19,159 bytes  received 97,746 bytes  13,753.53 bytes/sec
total size is 8,756,895  speedup is 74.91
 *
 * Succeeded:
 * ------
 * Successfully synchronized overlay "sabayon".
 * Successfully synchronized overlay "sabayon-distro".
 * Successfully synchronized overlay "sunrise".
 * Successfully synchronized overlay "zugaina".
 
Sabayon e Gentoo. Modernizando o Portage.

6 comentários sobre “Sabayon e Gentoo. Modernizando o Portage.

  1. COMPLEMENTO DO ARTIGO

    Dia 30 de Agosto de 2015.

    Ainda não descobrí o porque, mas…

    em um de meus Sabayons com esse Portage “Modernizado”, o comando clássico “emerge sync” OU “emerge –sync” não o sincroniza, mas dá um erro de Python!

    Se isso estiver acontecendo com você, você pode contornar o erro!

    substitua “emerge –sync” por

    # emaint sync -a

    A Priori, os dois comandos deveriam ser equivalentes:

    https://wiki.gentoo.org/wiki/Project:Portage/Sync
    https://forums.gentoo.org/viewtopic-p-7697500.html

    Mas não sei porque, o comando clássico não está funcionando. Quando eu descobrir, eu atualizo o Artigo!

    Curtir

Deixe um comentário