# Como evitar downgrade de pacotes ao rodar "emerge"

## RedPingüim

Olá....

Tenho uma situação a qual não consigo chegar à uma conclusão.

É o seguinte:

Quero rodar "emerge world" mas há alguns pacotes instalados, os quais eu instalei a partir do repositório "unstable" e não gostaria que estes referidos pacotes fossem substituídos por suas respectivas versões do repositório "stable".

Vejam como está:

Calculating world dependencies ...done!

[ebuild    UD] media-sound/alsa-utils-0.9.2 [0.9.4]

[ebuild    UD] x11-libs/lesstif-0.93.36 [0.93.40]

[ebuild  N   ] dev-perl/Text-Balanced-1.95

[ebuild  N   ] dev-perl/Parse-RecDescent-1.94

[ebuild  N   ] dev-perl/File-Spec-0.82

[ebuild  N   ] dev-perl/Test-Harness-2.28

[ebuild  N   ] dev-perl/Data-Dumper-2.101

[ebuild  N   ] dev-perl/Inline-0.44

[ebuild  N   ] dev-perl/Filter-1.29

[ebuild  N   ] dev-perl/ExtUtils-F77-1.14-r1

[ebuild  N   ] dev-perl/PDL-2.4.0

[ebuild  N   ] media-libs/gdk-pixbuf-0.21.0

[ebuild  N   ] dev-perl/XML-Parser-2.31-r1

[ebuild  N   ] dev-perl/XML-Writer-0.4-r2

[ebuild  N   ] dev-perl/gtk-perl-0.7008-r9

[ebuild    UD] media-gfx/gimp-1.2.4 [1.2.5]

[ebuild    UD] media-sound/alsa-driver-0.9.2 [0.9.4-r1]

Se eu simplesmente executar "emerge world" os pacotes assinalados com "UD" serão sibstituídos por suas versões consideradas "estáveis" e eu quero evitar isto. 

Não vejo opções no "emerge" que me permitam lidar com isto, sendo assim alguém me sugere algum procedimento?

Muito obrigado...

----------

## darktux

Podes sempre mentir à portage e fazer emerge -i media-sound/alsa-utils-0.9.2 e por aí a fora.

Lembro-me que chegou a haver um patch para evitar realmente estas situações, mas sinceramente não sei se chegou a ser aceite.

----------

## RoadRunner

Ou fazes o update à mão (emerge Text-Balanced Parse-RecDescent File-Spec ....) ou fazes o "inject" das versões estáveis (ver man emerge, na parte do inject), como o darktux disse.

----------

## AngusYoung

Você também pode usar a opção -U do emerge, pois ela evita que atualizações de pacotes efetuem downgrade.

Veja só:

```
root@phobos conf.d # emerge -up world

These are the packages that I would merge, in order:

 

Calculating world dependencies ...done!

[ebuild    UD] net-www/opera-6.12 [7.11]

[ebuild    U ] sys-kernel/development-sources-2.5.73 [2.5.72]

[ebuild    U ] sys-apps/fileutils-4.1.11-r1 [4.1.11]

[ebuild    U ] sys-apps/psmisc-21.2-r2 [21.2-r1]

[ebuild    U ] sys-apps/debianutils-1.16.7-r2 [1.16.7-r1]
```

Agora usando -U: 

```
root@phobos conf.d # emerge -Up world

>>> --upgradeonly implies --update... adding --update to options.

 

These are the packages that I would merge, in order:

 

Calculating world dependencies ...done!

[ebuild    U ] sys-kernel/development-sources-2.5.73 [2.5.72]

[ebuild    U ] sys-apps/fileutils-4.1.11-r1 [4.1.11]

[ebuild    U ] sys-apps/psmisc-21.2-r2 [21.2-r1]

[ebuild    U ] sys-apps/debianutils-1.16.7-r2 [1.16.7-r1]
```

----------

## RedPingüim

Ok, amigos..

Vou adotar este procedimento....  :Cool: 

Obrigado,

obs.: Angus, este teu procedimento é bem legal, mas no caso dos pacotes assinalados como "N" ele não os incluirá. Aliás, não entendi bem o porquê do emerge querer instalar estes novos pacotes no sistema.

----------

## RoadRunner

Grande dica Angus! Não conhecia esse -U, nem vem documentado na man page. como o descobriste?

----------

## AngusYoung

 *RoadRunner wrote:*   

> Grande dica Angus! Não conhecia esse -U, nem vem documentado na man page. como o descobriste?

 Eu descobri usando o emerge --help. Descobri ele quando estava procurando material para escrever documento aqui

----------

## RoadRunner

Tens razão. Vem no help mas não vem na man page. Se calhar não era má ideia notificar a equipa de documentação que a man-page está desactualizada.

----------

## RedPingüim

Obrigado..

A utilização da opção "--inject" resolveu a questão. Creio que estes pacotes assinalados com "N" estariam relacionados ao "downgrade" do Gimp, ou coisa que o valha...

Obrigado a todos...

----------

## PT_LAmb

 *RoadRunner wrote:*   

> Tens razão. Vem no help mas não vem na man page. Se calhar não era má ideia notificar a equipa de documentação que a man-page está desactualizada.

 

Como estava com dificuldades em dormir, tomei a liberdade criar o relatorio. Espero sinceramente que nao seja duplicado, passei 15 minutos 'a procura.

Cumprimentos,

Ricardo Cordeiro  :Smile: 

----------

## MetalGod

tambem costumo usar a opção -u   :Cool: 

normalmente faço sempre:

```

emerge sync && emerge -up world

```

e dp se houver updates faço:

```

emerge -u world

```

bem eu também uso ACCEPT_KEYWORDS=~x86...

 :Smile: 

----------

## lmpinto

 *MetalGOD wrote:*   

> tambem costumo usar a opção -u  
> 
> normalmente faço sempre:
> 
> ```
> ...

 

Do lado de cá é um 'time emerge sync', seguido de um 'emerge -upv --deep world', e depois cada package à mão (tenho um prob no liquidwar, e outro no winex-transgaming que ainda não me dei ao trabalho de resolver)... Para além de que gosto de fazer as coisas à mão. Para coisas que demorem muito tempo a vir faço um 'emerge -uf --deep world', enquanto vou noutra consola fazendo o emerge de coisas que já tenham vindo... e claro, tb uso o ~x86...

----------

