Sabayon Linux: instalando duas versões de pacotes

Publicado por Alberto Federman Neto. em 09/10/2013

[ Hits: 5.690 ]

Blog: https://ciencialivre.blog/

 


Sabayon Linux: instalando duas versões de pacotes



Às vezes, em certas distribuições, pacotes param de funcionar porque necessitam de versões diferentes de bibliotecas.

Assim, por exemplo, atualiza-se a biblioteca para um Pacote A e um Pacote B, também instalado, não funcionará mais porque precisa da biblioteca em versão anterior.

Por exemplo, veja aqui. O Wicd (para conectar a rede) necessita de libpng antiga (a instalada), mas o navegador Chromium, não abre porque precisa da libpng nova. Se eu atualizar (para 1.6.6) a libpng, será o Wicd que não funcionará:

chromium
 chromium-browser: error while loading shared libraries: libpng16.so.16:
 cannot open shared object file: No such file or directory


Como resolver?

Observação: neste ponto, configure seu Sabayon para poder usar Entropy junto com Portage:
Algumas vezes em Sabayon, a solução mais simples é instalar uma versão do pacote com Entropy e a outra, com Portage, como eu fiz com a biblioteca protobuf:

equo s protobuf && emerge -s protobuf
 @@ Pacote: dev-libs/protobuf-2.4.1 branch: 5, [sabayonlinux.org]
 >>    Disponível:   versão: 2.4.1 ~ tag: NoTag ~ revisão: 1
 >>    Instalado:    versão: 2.4.1 ~ tag: NoTag ~ revisão: 1
 >>    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
dev-libs/protobuf
      Latest version available: 2.5.0
      Latest version installed: 2.5.0
      Size of files: 1,823 kB
      Homepage:      http://code.google.com/p/protobuf/
      Description:   Google's Protocol Buffers -- an efficient method of encoding structured data
      License:       Apache-2.0


Outras vezes, isso não funciona (quando não podem co-existir no mesmo SLOT).

Contudo, o Portage dos GNU/Linux tipo Gentoo, tem recursos bem avançados que podem ajudar.

Pode-se instalar duas versões de pacotes no mesmo sistema, em locais, "encaixes" (SLOTS) diferentes.

Procedimentos

1. Para isso, a primeira coisa é saber a versão instalada e a disponível, isso pode ser feito com vários comandos, tais como:

equo s pacote
$ emerge -s pacote
$ eix pacote


Em nosso exemplo (veja acima), a versão instalada é a 1.5.15 e a versão mais nova disponível é a 1.6.6:

equo s libpng
 Pacote: media-libs/libpng-1.5.15 branch: 5, [sabayonlinux.org]
 >>     Disponível:   versão: 1.5.15 ~ tag: NoTag ~ revisão: 2
 >>     Instalado:    versão: 1.5.15 ~ tag: NoTag ~ revisão: 3
 >>     Slot:         0
 >>     Homepage:     http://www.libpng.org/
 >>     Descrição:    Portable Network Graphics library
 >>     Licença:      libpng


eix libpng
 [U] media-libs/libpng
     Available versions:
     (1.2)  1.2.50 (~)1.2.50-r1
     (0)    1.5.13-r1 1.5.15 (~)1.6.3(0/16) (~)1.6.3-r1(0/16) (~)1.6.6(0/16)
     (1.5)  (~)1.5.16 (~)1.5.17
       {apng neon static-libs ABI_MIPS="n32 n64 o32" ABI_X86="32 64 x32"}
     Installed versions:  1.2.50(1.2)(15:41:50 25-10-2012) 
     1.5.15(18:33:05 01-10-2013)( apng static-libs -neon)
     Homepage:         http://www.libpng.org/
     Description:      Portable Network Graphics library


2. Agora, é preciso verificar os SLOTs disponíveis e/ou usados pelo pacote. Isso pode ser feito com vários comandos:

grep SLOT /usr/portage/categoria/pacote
$ eix -e pacote
$ equery list -p (ou --portage-tree) pacote
  # Incluirá todos, até os Ebuilds não instaláveis
equery list pacote  # Somente o instalado

Detalhes: Gentoo Forums :: View topic - List *ALL* Slot for a Given Package

Voltando a nosso exemplo, pode-se ver que o pacote libpng está instalado no SLOT principal, 0, e a versão mais nova, instalável (1.6.6) tem disponíveis os SLOTS 0 e 16.

equery list -p libpng
 * Searching for libpng ...
 [IP-] [  ] media-libs/libpng-1.2.50:1.2
 [-P-] [  ] media-libs/libpng-1.2.50-r1:1.2
 [IP-] [  ] media-libs/libpng-1.5.15:0
 [-P-] [  ] media-libs/libpng-1.5.17:1.5
 [-P-] [  ] media-libs/libpng-1.6.6:0/16


3. O que se pode fazer é:

3.1. Atualizar o Portage:

# emerge --sync
# layman -S
# emerge --oneshot portage


3.2. Simular a instalação e depois instalar a versão mais nova com Portage, em um outro SLOT disponível, com os comandos:

# emerge -pv1 libpng
Ou:
# emerge -pvS libpng

# emerge -av1 libpng
Ou:
# emerge -avS libpng
Ou:
# emerge -1 libpng:0 libpng:16

Onde as opções do comando emerge significam:
  • -p, --pretend (simula)
  • -a, --ask (pergunta)
  • -1 ou -S significa "side-by-side" instalação em SLOTs diferentes.

Detalhes:
E veja também o manual do comando emerge (man emerge).

3.3. Remover a versão antiga do pacote com Entropy, sem tirar as dependências:

# equo rm --nodeps libpng-1.5.15

3.4. Finalizando, reinstalar a versão antiga com Entropy (comando equo), depois mascarar todas as versões:

# equo i libpng-1.5.15
# equo mask libpng


4. Resolvido.

Observe em nosso exemplo, ambas as versões instaladas:

equo s libpng && emerge -s libpng
 Pacote: media-libs/libpng-1.5.15 branch: 5, [sabayonlinux.org]
 >>    Disponível:   versão: 1.5.15 ~ tag: NoTag ~ revisão: 2
 >>    Instalado:    versão: 1.5.15 ~ tag: NoTag ~ revisão: 3
 >>    Slot:         0
 >>    Homepage:     http://www.libpng.org/
 >>    Descrição:    Portable Network Graphics library
 >>    Licença:      libpng
 media-libs/libpng
   Latest version available: 1.6.6
   Latest version installed: 1.6.6
   Size of files: 859 kB
   Homepage:      http://www.libpng.org/
   Description:   Portable Network Graphics library
   License:       libpng


Outras dicas deste autor

Meu micro está usando todos os processadores? [Resolvido]

Lembre-se: você tem espaço gratuito para armazenar arquivos na rede!

Corrigindo perfis de Portage em Sabayon e Gentoo

Sabayon Linux: Entropy sem espaço temporário para atualizar [Resolvido]

K3B não está gravando CDs ou DVDs [Resolvido]

Leitura recomendada

Redimensionando o RAID 1

Como Instalar o Gentoo Linux

SolidOak - IDE para a linguagem Rust

Onde aprendi a programar

Workgroup open source com OpenLDAP

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts