Sabayon Linux e Gentoo - Como desfazer atualizações para resolver problemas
Dica publicada em Linux / Software
Sabayon Linux e Gentoo - Como desfazer atualizações para resolver problemas
Estou aqui novamente para reportar à comunidade, mais uma dica sobre o uso do Sabayon Linux.
Como é do conhecimento dos usuários de Sabayon e Gentoo, eles são GNU/Linux "rolling release" (há outros, como Arch Linux, Aptosid etc...), atualizam-se automaticamente, sem necessidade de trocar a versão.
Meu Sabayon principal está na versão 13 "Bleeding Edge" (pacotes do repositório Limbo, "unstable and testing"), originalmente ele era versão 5.2, nunca precisou ser reinstalado.
A filosofia, a ideia, por trás das "rolling release", é ter sempre os pacotes mais novos, mesmo que não sejam tão estáveis. Embora seja relativamente raro, isto pode causar "quebras" ou mal funcionamento de algum pacote.
Por isso alguns usuários não gostam de distribuições rolling release e não as utilizam. Mas nesta dica, parto do pressuposto que se você usa Sabayon, é porque gosta de "rolling release" e tem alguma prática com elas.
Como visto acima, de vez em quando, algo de seu Sabayon ou Gentoo, pode "quebrar", vamos ver como se anula a atualização, para solucionar isto.
Tente abri-lo através de uma linha de comando. No exemplo abaixo, vejam que o controlador de gerenciadores de janelas "Fusion-Icon" (do Compiz) não abre mais após atualizações:
fusion-icon
Em Sabayon:
equo s PACOTE
Em Gentoo:
Observação: em Gentoo, se você usar o comando mais comum (emerge -s PACOTE) possivelmente só a última versão atualizada irá aparecer e você não saberá se há versões anteriores no Portage, por isso prefira os comandos "eix" ou "esearch":
# emerge eix esearch
Depois:
eix PACOTE
Ou:
esearch PACOTE
Voltando ao nosso exemplo, vimos (A) que o pacote "protobuf" é o que causou o problema. Vamos verificar as versões:
equo s protobuf
# equo i PACOTE-versão antiga
Voltando ao nosso exemplo prático, vamos "desatualizar" o protobuf:
# equo i protobuf-2.4.1
equo s protobuf
O pacote "Fusion-Icon", que não funcionava mais (veja na FIGURA 1), agora funciona. Preste atenção no comando de abrir o "Fusion-Icon", na tela, e o ícone dele aberto e rodando, embaixo, à direita, na barra de menus, onde está o cursor do mouse: Atualização desfeita e problema resolvido!
Sim, mas tem um jeito! Mascare todas as versões:
# equo mask PACOTE
No nosso exemplo, vejam também a atualização, antes da colocação da máscara e depois:
# equo u --pretend
# emerge -av =PACOTE-versão antiga
Com sinal de "=", igual, mesmo.
No nosso exemplo prático, como não estou escrevendo isto em Gentoo mas em Sabayon, por isso vou rodar o comando com opção "-p", "--pretend", só para simular a instalação:
eix protobuf
Depois disso, como em Sabayon, você deve mascará-lo.
O jeito mais fácil de fazer isso é adicionar o pacote ao arquivo /etc/portage/package.mask, usando um editor de texto em modo root, ou um comando "echo". Detalhes, vejam em:
O ideal é você tentar desfazer todas as atualizações. Primeiro, você deve fazê-lo rápido, antes que as versões antigas sejam removidas dos repositórios e espelhos. É lógico, NÃO RODE "equo update", para não atualizar novamente os repositórios.
Usando o RIGO ou o Sulfur. FIGURA 2: Ou com comandos:
# equo repo list # Veja o nome do REPOSITÓRIO
# equo repo remove REPOSITÓRIO
Ou ainda, editando, comentando, ou renomeando os arquivos de repositórios.
Momentaneamente, INATIVE ou REMOVA, o repositório que trouxe os pacotes que causaram problemas. Geralmente, é o Limbo.
Agora, ao reatualizar os repositórios:
# equo up
O Entropy (instalador de pacotes do Sabayon), vai propor a você vários "downgrades", como se fossem atualizações. Um segundo comando:
# equo u
Retornará então o sistema aos pacotes antigos, desfazendo as atualizações.
Em nosso exemplo, teste (note que não posso rodar o comando, para não desatualizar meu sistema), mas apenas exemplificando, momentaneamente, removi o repositório (renomeando o arquivo dele em /etc/entropy/repositories.conf.d) e agora, o sistema faria os downgrades:
cd /
$ cd etc/entropy/repositories.conf.d
$ cd etc/entropy/repositories.conf.d
$ sudo mv entropy_sabayon-limbo _entropy_sabayon-limbo.inativo
$ sudo equo up
(...)
$ sudo equo u --pretend
Para mais detalhes, é parecido com o que foi feito para manter o GNOME 2 em Sabayon.
Como ele é de compilação pura, ela faz todos os binários dele no micro, então o resultado de um downgrade amplo de grande número de pacotes, é meio imprevisível.
Mas você pode tentar com um comando de Portage, o "demerge". Detalhes:
Instale o pacote "demerge" e depois execute o comando:
# emerge -av demerge
# demerge --record
Como é do conhecimento dos usuários de Sabayon e Gentoo, eles são GNU/Linux "rolling release" (há outros, como Arch Linux, Aptosid etc...), atualizam-se automaticamente, sem necessidade de trocar a versão.
Meu Sabayon principal está na versão 13 "Bleeding Edge" (pacotes do repositório Limbo, "unstable and testing"), originalmente ele era versão 5.2, nunca precisou ser reinstalado.
A filosofia, a ideia, por trás das "rolling release", é ter sempre os pacotes mais novos, mesmo que não sejam tão estáveis. Embora seja relativamente raro, isto pode causar "quebras" ou mal funcionamento de algum pacote.
Por isso alguns usuários não gostam de distribuições rolling release e não as utilizam. Mas nesta dica, parto do pressuposto que se você usa Sabayon, é porque gosta de "rolling release" e tem alguma prática com elas.
Como visto acima, de vez em quando, algo de seu Sabayon ou Gentoo, pode "quebrar", vamos ver como se anula a atualização, para solucionar isto.
A. Achando o pacote cuja atualização causou o problema
Primeira coisa, identificar o pacote que está dando problemas. Você clicou no ícone dele e ele não abriu!Tente abri-lo através de uma linha de comando. No exemplo abaixo, vejam que o controlador de gerenciadores de janelas "Fusion-Icon" (do Compiz) não abre mais após atualizações:
fusion-icon
Traceback (most recent call last):Leiam as mensagens de erros que aparecem. Em nosso exemplo, vejam que a biblioteca "libprotobuf" não é mais achada, por isso o "Fusion-Icon" não abre. O pacote atualizado que causa o problema é, portanto, o "protobuf".
File "/usr/bin/fusion-icon", line 57, in <module>
from FusionIcon.interface import choose_interface
File "/usr/lib64/python2.7/site-packages/FusionIcon/interface.py", line 22, in <module>
from util import env
File "/usr/lib64/python2.7/site-packages/FusionIcon/util.py", line 23, in <module>
import os, compizconfig, ConfigParser, time
ImportError: libprotobuf.so.7: cannot open shared object file: No such file or directory
B. Identificando as versões antiga e nova do pacote
Identificado o pacote, vamos ver como ele atualizou, as versões. Execute uma das séries de comandos abaixo, para procurar o pacote e suas versões:Em Sabayon:
equo s PACOTE
Em Gentoo:
Observação: em Gentoo, se você usar o comando mais comum (emerge -s PACOTE) possivelmente só a última versão atualizada irá aparecer e você não saberá se há versões anteriores no Portage, por isso prefira os comandos "eix" ou "esearch":
# emerge eix esearch
Depois:
eix PACOTE
Ou:
esearch PACOTE
Voltando ao nosso exemplo, vimos (A) que o pacote "protobuf" é o que causou o problema. Vamos verificar as versões:
equo s protobuf
>> @@ Buscando...Observe que há duas versões de "protobuf", a antiga e a atualizada, que não está mais funcionando bem!
>> @@ Pacote: dev-libs/protobuf-2.4.1 branch: 5, [sabayonlinux.org]
>> Disponível: versão: 2.4.1 ~ tag: NoTag ~ revisão: 0
>> Instalado: versão: 2.5.0 ~ tag: NoTag ~ revisão: 0
>> Slot: 0
>> Homepage: http://code.google.com/p/protobuf/
>> Descrição: Google's Protocol Buffers -- an
>> efficient method of encoding structured
>> data
>> Licença: Apache-2.0
>> @@ Pacote: dev-libs/protobuf-2.5.0 branch: 5, [sabayon-limbo]
>> Disponível: versão: 2.5.0 ~ tag: NoTag ~ revisão: 0
>> Instalado: versão: 2.5.0 ~ tag: NoTag ~ revisão: 0
>> Slot: 0
>> Homepage: http://code.google.com/p/protobuf/
>> Descrição: Google's Protocol Buffers -- an
>> efficient method of encoding structured
>> data
>> Licença: Apache-2.0
>> Palavras-Chave: protobuf
>> Encontrado: 2 entradas
C. Fazendo o downgrade do pacote
A solução mais simples? Fazer "downgrade" do pacote "protobuf", anulando, desfazendo a atualização! Para isso, especifique a versão antiga no comando de reinstalação. As dependências, se as houver, serão "puxadas" junto:# equo i PACOTE-versão antiga
Voltando ao nosso exemplo prático, vamos "desatualizar" o protobuf:
# equo i protobuf-2.4.1
>> @@ Calculando dependências...Vejam que o pacote instalado foi rebaixado de versão:
>> ## [D] [linuxmx->sabayonlinux.org] dev-libs/protobuf-2.4.1|0 [2.5.0|0]
>> @@ Pacotes que precisam ser instalados/atualizados/rebaixados: 1
>> @@ Pacotes que precisam ser removidos: 0
>> @@ Tamanho de recebimento: 877.5kB
>> @@ Espaço de disco liberado: 405.5kB
>> @@ Você precisa de pelo menos: 1.3MB de espaço livre
>> ::: >>> (1/1) 1 pacote
>> ## Recebendo: 1 arquivo
>> ## ( mirror #1 ) [dev-libs:protobuf-2.4.1~0.tbz2] @ http://na.mirror.garr.it
>> ## Recebimento agregado: 1 ítem
>> # [1] na.mirror.garr.it => dev-libs+protobuf-2.5.0.2c5a7a8fd23f276c73905267a869e63eff62effc~0~a2ec40705e7a1bd0d3aaf68a2670400b96861344898847e476c574735b009669.edelta
>> ## Recebimento agregado: 1 ítem
>> # [1] na.mirror.garr.it => dev-libs:protobuf-2.4.1~0.tbz2
>> ## ( mirror #1 ) [dev-libs:protobuf-2.4.1~0.tbz2] sucesso @ http://na.mirror.garr.it
>> ## Taxa de transferência agredada: 225.6kB/segundo
>> ## Soma de checagem do pacote corresponde: dev-libs:protobuf-2.4.1~0.tbz2
>> : GPG corresponde
>> : SHA1 corresponde
>> : SHA256 Desabilitado
>> : SHA512 Desabilitado
>> +++ >>> (1/1) dev-libs/protobuf-2.4.1
>> ## Desempacotando: dev-libs:protobuf-2.4.1~0.tbz2
>> ## Fase do Pacote: setup
>> ## Fase do Pacote: preinstall
>> ## Instalando pacote: dev-libs/protobuf-2.4.1
>> ## [Google's Protocol Buffers -- an efficient method of encoding structured da...]
>> ## Atualizando base de dados: dev-libs/protobuf-2.4.1
>> ## Limpando dados do aplicativos anteriormente instalados
>>> Regenerating /etc/ld.so.cache...
>> ## Fase do Pacote: postremove
>>> Regenerating /etc/ld.so.cache...
>> ## Fase do Pacote: postinstall
* Compilation and optimization of Python modules for CPython 2.7 ... [ ok ]
>> ## Limpando: dev-libs/protobuf-2.4.1
>> @@ Instalação completa.
equo s protobuf
>> @@ Buscando...Resumindo... Na prática, você "desfez" uma atualização em uma distribuição "rolling release". Sim, é possível fazê-lo!
>> @@ Pacote: dev-libs/protobuf-2.4.1 branch: 5, [sabayonlinux.org]
>> Disponível: versão: 2.4.1 ~ tag: NoTag ~ revisão: 0
>> Instalado: versão: 2.4.1 ~ tag: NoTag ~ revisão: 0
>> Slot: 0
>> Homepage: http://code.google.com/p/protobuf/
>> Descrição: Google's Protocol Buffers -- an
>> efficient method of encoding structured
>> data
>> Licença: Apache-2.0
>> @@ Pacote: dev-libs/protobuf-2.5.0 branch: 5, [linuxmx]
>> Disponível: versão: 2.5.0 ~ tag: NoTag ~ revisão: 0
>> Instalado: versão: 2.4.1 ~ tag: NoTag ~ revisão: 0
>> Slot: 0
>> Homepage: http://code.google.com/p/protobuf/
>> Descrição: Google's Protocol Buffers -- an
>> efficient method of encoding structured
>> data
>> Licença: Apache-2.0
>> Palavras-Chave: protobuf
>> Encontrado: 2 entradas
O pacote "Fusion-Icon", que não funcionava mais (veja na FIGURA 1), agora funciona. Preste atenção no comando de abrir o "Fusion-Icon", na tela, e o ícone dele aberto e rodando, embaixo, à direita, na barra de menus, onde está o cursor do mouse: Atualização desfeita e problema resolvido!
D. Mascarando o pacote, para não atualizar mais
Bom, você diria, mas agora, quando eu atualizar a versão nova vai "voltar", vai ser reatualizado o pacote.Sim, mas tem um jeito! Mascare todas as versões:
# equo mask PACOTE
No nosso exemplo, vejam também a atualização, antes da colocação da máscara e depois:
# equo u --pretend
>> @@ Calculando Atualizações de Sistema:sudo equo mask protobuf
>> @@ 1 => Atualizar pacotes correspondentes
>> @@ 8 => Pacotes correspondentes não estão disponíveis
>> @@ 1723 => Pacotes correspondentes já estão atualizados
>> @@ Esses são os pacotes selecionados:
>> # (1/1) [linuxmx] dev-libs/protobuf-2.5.0
>> Versões: 2.4.1 / NoTag / 0 ===> 2.5.0 / NoTag / 0
>> Ação: Promover
>> @@ Pacotes envolvidos: 1
>> @@ Calculando dependências...
>> @@ Estes são os pacotes que seriam instalados:
>> ## [U] [sabayonlinux.org->linuxmx] dev-libs/protobuf-2.5.0|0 [2.4.1|0]
>> @@ Pacotes que precisam ser instalados/atualizados/rebaixados: 1
>> @@ Pacotes que precisam ser removidos: 0
>> @@ Pacotes que precisam ser instalados: 0
>> @@ Pacotes que precisam ser reinstalados: 0
>> @@ Pacotes que precisam ser atualizados: 1
>> @@ Pacotes que precisam ser rebaixados: 0
>> ## [M] protobuf# equo u
>> -> dev-libs/protobuf-2.5.0
>> -> dev-libs/protobuf-2.4.1
>> Have a nice day.
>> @@ Calculando Atualizações de Sistema:Assim mascarando, o pacote não mais será chamado nas atualizações.
>> @@ 0 => Atualizar pacotes correspondentes
>> @@ 8 => Pacotes correspondentes não estão disponíveis
>> @@ 1723 => Pacotes correspondentes já estão atualizados
>> @@ Nada para atualizar.
E. Desatualizando e mascarando em Gentoo
Mas em Gentoo, como eu faria? Você poderia fazer assim:# emerge -av =PACOTE-versão antiga
Com sinal de "=", igual, mesmo.
No nosso exemplo prático, como não estou escrevendo isto em Gentoo mas em Sabayon, por isso vou rodar o comando com opção "-p", "--pretend", só para simular a instalação:
eix protobuf
[U] dev-libs/protobufemerge -p =protobuf-2.4.1
Available versions: 2.4.0a (~)2.4.1 (~)2.5.0(0/8) {emacs examples java python source static-libs vim-syntax ELIBC="FreeBSD" PYTHON_TARGETS="python2_5 python2_6 python2_7"}
Installed versions: 2.4.1(04:27:29 23-11-2011)(python -emacs -examples -java -source -static-libs -vim-syntax ELIBC="-FreeBSD")
Homepage: http://code.google.com/p/protobuf/
Description: Google's Protocol Buffers -- an efficient method of encoding structured data
These are the packages that would be merged, in order:Em modo root, e substituindo "-p" por "-av", você faria como desejado, o "downgrade" do pacote.
Calculating dependencies... done!
[ebuild R ] dev-libs/protobuf-2.4.1
 * IMPORTANT: 12 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
Depois disso, como em Sabayon, você deve mascará-lo.
O jeito mais fácil de fazer isso é adicionar o pacote ao arquivo /etc/portage/package.mask, usando um editor de texto em modo root, ou um comando "echo". Detalhes, vejam em:
- How to downgrade a gentoo package « mindspill.net
- Preventing a package from being updated « us.generation-nt
- Gentoo masked packages « Sidvind
- howtos:portage « Redeeman's Wiki
- How to use and handle masked packages « Linux Reviews
- Knowledge Base:Masking a package « Gentoo Wiki
F. Desfazer várias atualizações em Sabayon
Vamos supor que você não conseguiu achar o pacote que está dando problema, ou os problemas são muitos, são vários, em vários aplicativos.O ideal é você tentar desfazer todas as atualizações. Primeiro, você deve fazê-lo rápido, antes que as versões antigas sejam removidas dos repositórios e espelhos. É lógico, NÃO RODE "equo update", para não atualizar novamente os repositórios.
Usando o RIGO ou o Sulfur. FIGURA 2: Ou com comandos:
# equo repo list # Veja o nome do REPOSITÓRIO
# equo repo remove REPOSITÓRIO
Ou ainda, editando, comentando, ou renomeando os arquivos de repositórios.
Momentaneamente, INATIVE ou REMOVA, o repositório que trouxe os pacotes que causaram problemas. Geralmente, é o Limbo.
Agora, ao reatualizar os repositórios:
# equo up
O Entropy (instalador de pacotes do Sabayon), vai propor a você vários "downgrades", como se fossem atualizações. Um segundo comando:
# equo u
Retornará então o sistema aos pacotes antigos, desfazendo as atualizações.
Em nosso exemplo, teste (note que não posso rodar o comando, para não desatualizar meu sistema), mas apenas exemplificando, momentaneamente, removi o repositório (renomeando o arquivo dele em /etc/entropy/repositories.conf.d) e agora, o sistema faria os downgrades:
cd /
$ cd etc/entropy/repositories.conf.d
$ cd etc/entropy/repositories.conf.d
$ sudo mv entropy_sabayon-limbo _entropy_sabayon-limbo.inativo
$ sudo equo up
(...)
$ sudo equo u --pretend
>> @@ Calculando Atualizações de Sistema:Se eu rodasse os comandos, sem a opção --pretend, minhas atualizações seriam anuladas, voltando ao sistema antigo. Naturalmente que depois, seria necessário mascarar os pacotes um a um e finalmente reativar o repositório.
>> @@ 20 => Atualizar pacotes correspondentes
>> @@ 9 => Pacotes correspondentes não estão disponíveis
>> @@ 1701 => Pacotes correspondentes já estão atualizados
>> @@ Esses são os pacotes selecionados:
>> # (1/20) [sabayonlinux.org] app-accessibility/speech-dispatcher-0.7.1-r2
>> Versões: 0.8-r2 / NoTag / 0 ===> 0.7.1-r2 / NoTag / 0
>> Ação: Rebaixar
>> # (2/20) [sabayonlinux.org] app-office/libreoffice-4.0.2.2
>> Versões: 4.0.3.3 / NoTag / 0 ===> 4.0.2.2 / NoTag / 0
>> Ação: Rebaixar
>> # (3/20) [sabayonlinux.org] app-text/liblangtag-0.4.0
>> Versões: 0.5.1 / NoTag / 0 ===> 0.4.0 / NoTag / 1
>> Ação: Rebaixar
>> # (4/20) [sabayonlinux.org] app-text/libmspub-0.0.3
>> Versões: 0.0.6 / NoTag / 0 ===> 0.0.3 / NoTag / 1
>> Ação: Rebaixar
>> # (5/20) [sabayonlinux.org] dev-lang/v8-3.16.14.9-r1
>> Versões: 3.19.3.1 / NoTag / 0 ===> 3.16.14.9-r1 / NoTag / 0
>> Ação: Rebaixar
>> # (6/20) [sabayonlinux.org] dev-libs/jsoncpp-0.5.0
>> Versões: 0.5.0-r1 / NoTag / 0 ===> 0.5.0 / NoTag / 1
>> Ação: Rebaixar
>> # (7/20) [sabayonlinux.org] dev-libs/libebml-1.2.2
>> Versões: 1.3.0 / NoTag / 0 ===> 1.2.2 / NoTag / 0
>> Ação: Rebaixar
>> # (8/20) [sabayonlinux.org] dev-libs/re2-0_p20121127
>> Versões: 0_p20130115-r1 / NoTag / 0 ===> 0_p20121127 / NoTag / 1
>> Ação: Rebaixar
>> # (9/20) [sabayonlinux.org] media-libs/freeglut-2.8.0-r1
>> Versões: 2.8.1 / NoTag / 0 ===> 2.8.0-r1 / NoTag / 0
>> Ação: Rebaixar
>> # (10/20) [sabayonlinux.org] media-libs/libbluray-0.2.3
>> Versões: 0.3.0-r1 / NoTag / 0 ===> 0.2.3 / NoTag / 1
>> Ação: Rebaixar
>> # (11/20) [sabayonlinux.org] media-libs/libcdr-0.0.13
>> Versões: 0.0.14 / NoTag / 0 ===> 0.0.13 / NoTag / 0
>> Ação: Rebaixar
>> # (12/20) [sabayonlinux.org] media-libs/libmatroska-1.3.0
>> Versões: 1.4.0 / NoTag / 0 ===> 1.3.0 / NoTag / 0
>> Ação: Rebaixar
>> # (13/20) [sabayonlinux.org] media-libs/libwebp-0.2.1
>> Versões: 0.3.0 / NoTag / 0 ===> 0.2.1 / NoTag / 0
>> Ação: Rebaixar
>> # (14/20) [sabayonlinux.org] media-libs/mesa-9.1.2-r1
>> Versões: 9.1.3 / NoTag / 0 ===> 9.1.2-r1 / NoTag / 0
>> Ação: Rebaixar
>> # (15/20) [sabayonlinux.org] media-libs/opus-1.0.1
>> Versões: 1.0.2-r2 / NoTag / 0 ===> 1.0.1 / NoTag / 0
>> Ação: Rebaixar
>> # (16/20) [sabayonlinux.org] perl-core/Getopt-Long-2.380.0
>> Versões: 2.390.0 / NoTag / 0 ===> 2.380.0 / NoTag / 1
>> Ação: Rebaixar
>> # (17/20) [sabayonlinux.org] sys-apps/pciutils-3.2.0
>> Versões: 3.2.0 / NoTag / 2 ===> 3.2.0 / NoTag / 0
>> Ação: Rebaixar
>> # (18/20) [sabayonlinux.org] sys-apps/systemd-202-r53
>> Versões: 202-r52 / NoTag / 7 ===> 202-r53 / NoTag / 0
>> Ação: Rebaixar
>> # (19/20) [sabayonlinux.org] virtual/perl-Getopt-Long-2.380.0-r2
>> Versões: 2.390.0 / NoTag / 0 ===> 2.380.0-r2 / NoTag / 0
>> Ação: Rebaixar
>> # (20/20) [sabayonlinux.org] www-client/chromium-26.0.1410.43
>> Versões: 29.0.1521.3 / NoTag / 0 ===> 26.0.1410.43 / NoTag / 0
>> Ação: Rebaixar
>> @@ Pacotes envolvidos: 20
>> @@ Calculando dependências...
>> @@ Estes são os pacotes que seriam instalados:
>> media-libs/freeglut-2.8.0-r1|0 [2.8.1|0]
>> app-text/libmspub-0.0.3|1 [0.0.6|0]
>> app-text/liblangtag-0.4.0|1 [0.5.1|0]
>> media-libs/libcdr-0.0.13|0 [0.0.14|0]
>> app-office/libreoffice-4.0.2.2|0 [4.0.3.3|0]
>> media-libs/libbluray-0.2.3|1 [0.3.0-r1|0]
>> virtual/perl-Getopt-Long-2.380.0-r2|0 [2.390.0|0]
>> sys-apps/systemd-202-r53|0 [202-r52|7]
>> dev-lang/v8-3.16.14.9-r1|0 [3.19.3.1|0]
>> dev-libs/re2-0_p20121127|1 [0_p20130115-r1|0]
>> media-libs/opus-1.0.1|0 [1.0.2-r2|0]
>> dev-libs/jsoncpp-0.5.0|1 [0.5.0-r1|0]
>> media-libs/libwebp-0.2.1|0 [0.3.0|0]
>> app-accessibility/speech-dispatcher-0.7.1-r2|0 [0.8-r2|0]
>> www-client/chromium-26.0.1410.43|0 [29.0.1521.3|0]
>> media-libs/mesa-9.1.2-r1|0 [9.1.3|0]
>> sys-apps/pciutils-3.2.0|0 [3.2.0|2]
>> dev-libs/libebml-1.2.2|0 [1.3.0|0]
>> media-libs/libmatroska-1.3.0|0 [1.4.0|0]
>> perl-core/Getopt-Long-2.380.0|1 [2.390.0|0]
>> @@ Pacotes que precisam ser instalados/atualizados/rebaixados: 20
>> @@ Pacotes que precisam ser removidos: 0
>> @@ Pacotes que precisam ser instalados: 0
>> @@ Pacotes que precisam ser reinstalados: 0
>> @@ Pacotes que precisam ser atualizados: 1
>> @@ Pacotes que precisam ser rebaixados: 19
>> @@ Tamanho de recebimento: 236.1MB
>> @@ Espaço de disco usado: 188.2MB
>> @@ Você precisa de pelo menos: 660.3MB de espaço livre
Para mais detalhes, é parecido com o que foi feito para manter o GNOME 2 em Sabayon.
G. Desfazer várias atualizações em Gentoo
Em Gentoo, infelizmente, é mais complicado.Como ele é de compilação pura, ela faz todos os binários dele no micro, então o resultado de um downgrade amplo de grande número de pacotes, é meio imprevisível.
Mas você pode tentar com um comando de Portage, o "demerge". Detalhes:
- http://packages.gentoo.org/package/app-portage/demerge
- http://gpo.zugaina.org/app-portage/demerge
- http://download.mpsna.de/opensource/demerge/
- http://www.gentooportage.info/portage/app-portage/demerge.html
- http://charlesnadeau.blogspot.com.br/2007_06_01_archive.html
Instale o pacote "demerge" e depois execute o comando:
# emerge -av demerge
# demerge --record