Sabayon Linux: instalando duas versões de pacotes

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

[ Hits: 5.710 ]

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

Medindo velocidade e eficiência da internet através de sistemas online

Configurando ou consertando sudo gráfico no KDE

Compilando/Instalando o novo Cairo-Dock no Sabayon

Desmascarando pacotes em Sabayon e Gentoo

Instalador universal de pacotes PackageKit e suas GUIs em qualquer distro, inclusive no Sabayon

Leitura recomendada

Problemas com teclado ABNT2 no QEMU [Resolvido]

Interligar dois servidores Asterisk

Como criar um pendrive UEFI no Ubuntu

Slackware 12 no Dell 320n

Cinnamon no Ubuntu 12.04

  

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