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".
Excelente artigo! eu ultimamente estou totalmente avesso a mudanças em meus sistemas daí passei a usar mais o Slackware! rsrs
Recentemente o Arch Linux mudou o seu AUR para o GIT, mas ainda não sei como está:
https://wiki.archlinux.org/index.php/Arch_User_Repository#AUR_4
Venho pensando em testar o OpenRC no Debian Jessie por causa da droga do systemd e no Slackware para ver se melhoro o tempo de boot.
Um abraço.
CurtirCurtir
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!
CurtirCurtir
Descobriu o erro do emerge –sync? valeu
CurtirCurtir
Você conseguiu descobrir o erro do emerge –sync?
CurtirCurtir
Como não uso Gentoo ou Sabayon não posso lhe ajudar, aguarde até que o colega @albfneto veja seu comentário.
CurtirCurtir
não descobrí a causa, mas após atualizações, o erro sumiu sózinho.
CurtirCurtir