Uma das coisas mais comuns no uso do gentoo, principalmente quando mistura pacotes estáveis, testings e unstables (como eu costumo fazer), é o downgrade de algum pacote para alguma versão anterior sem uma razão aparente, como o downgrade de uma versão estável para uma antiga versão.
Isso ocorreu comigo quando fui realizar um emerge -NDuav word:
hellboy ~ # emerge -NDuav world
These are the packages that would be merged, in order:
Calculating world dependencies... done!
[ebuild UD] dev-util/bzr-1.1 [1.5] USE="bash-completion -curl -emacs -sftp -test" 3,346 kB
[ebuild U ] app-text/poppler-0.8.6 [0.8.5] USE="jpeg zlib -cjk" 1,435 kB
[ebuild U ] app-text/poppler-bindings-0.8.6 [0.8.5] USE="cairo gtk -qt3 -qt4 -test" 0 kB
Total: 3 packages (2 upgrades, 1 downgrade), Size of downloads: 4,781 kB
Would you like to merge these packages? [Yes/No]
Vejam o caso do bazaar (dev-util/bzr), mas acontece que a versão 1.5 é uma versão estável como aponta o eix:
hellboy ~ # eix dev-util/bzr
[I] dev-util/bzr
Available versions: 0.17 1.1 ~1.3 ~1.4 1.5 [M]~1.6_rc5 {bash-completion curl emacs sftp test}
Installed versions: 1.5(07:43:31 PM 08/23/2008)(bash-completion -curl -emacs -sftp -test)
Homepage: http://bazaar-vcs.org/
Description: Bazaar is a next generation distributed version control system.
A razão deste comportamento é sempre por causa de algum pacote já instalado ou que vai ser instalado, eu acho que a maneira abaixo a mais simples para descobrir qual o pacote esta forçando o downgrade.
Primeiro eu mascaro o todas as versões abaixo da versão já instalada do programa que esta sendo forçado o downgrade, no caso, todas as versões do bazaar abaixo do 1.5.
sudo echo '<=dev-util/bzr-1.4' >> /etc/portage/package.mask
Feito isso, refaço o comando que originou o pedido de downgrade e vejo o resultado:
hellboy ~ # emerge -NDuav world
These are the packages that would be merged, in order:
Calculating world dependencies /
!!! All ebuilds that could satisfy "=dev-util/bzr-1.1*" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-util/bzr-1.1 (masked by: package.mask)
For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.
(dependency required by "dev-util/bzrtools-1.1.0" [installed])
!!! Problem resolving dependencies for dev-util/bzrtools
!!! Depgraph creation failed.
Dai eu observo que o responsável pelo downgrade é o pacote dev-util/bzrtools, que consta com todas as versões consideradas como instáveis:
hellboy ~ # eix bzrtools
[I] dev-util/bzrtools
Available versions: ~0.17.1 (~)1.1.0 ~1.3.0 ~1.4.0 ~1.5.0
Installed versions: 1.1.0(02:34:38 AM 02/06/2008)
Homepage: http://bazaar.canonical.com/BzrTools
Description: bzrtools is a useful collection of utilities for bzr.
Como é um caso de pacotes instáveis, uma maneira seria apagar o pacote instável ou utilizar a keyword, como eu estou querendo aprender mais do bazaar, prefiro arriscar utilizar o pacote instável.
sudo echo '=dev-util/bzrtools-1.5.0 ~*' >> /etc/portage/package.keywords
Com isso elimino a fonte do downgrade e refaço o meu comando sem medo de downgrades
.
hellboy ~ # emerge -NDuav world
These are the packages that would be merged, in order:
Calculating world dependencies... done!
[ebuild U ] dev-util/bzrtools-1.5.0 [1.1.0] 82 kB
[ebuild U ] app-text/poppler-0.8.6 [0.8.5] USE="jpeg zlib -cjk" 1,435 kB
[ebuild U ] app-text/poppler-bindings-0.8.6 [0.8.5] USE="cairo gtk -qt3 -qt4 -test" 0 kB
Total: 3 packages (3 upgrades), Size of downloads: 1,517 kB
Would you like to merge these packages? [Yes/No]
Gentoo is know as a hard linux distribution, in fact, only the installation is a hard process, everything else is just a piece of cake.
Ok, it’s not easy as ubuntu, but with the right tools, everyone can make magic.
IMHO, no one can have all Gentoo experience without:
- equery (useful when you need information, as USE flags, depends, package contents, etc)
- eix ( excellent search packages program )
- euse (USE flags )
- revdep-rebuild (after an emerge -NDuav world, to fix broken packages)
- module-rebuild rebuild -X ( after an kernel update, rebuild old modules to fit with your new kernel)
Equery, euse and revdep-rebuild are part of gentoolkit ( emerge gentoolkit), eix and module-rebuild have their own package.
And, of course, vim for everything else
Zenity is a great tool, it creates a gtk dialog box using shell commands.
The following line shows how you can make a emerge without worry waiting for a terminal response.
emerge -NDupv world >/tmp/newpackage && zenity --text-info --filename=/tmp/newpackage && zenity --question --text="emerge?" && emerge -NDuv world
I started a new entry at gentoo-wiki.
It’s about Acer Aspire5672 WLMi.
http://gentoo-wiki.com/HARDWARE_Acer_Aspire_5672_WLMi
You can help me improve it