Sabayon Linux: instalando duas versões de pacotes

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

[ Hits: 4.215 ]

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

Testando o novo Firefox (Minefield) e compatibilizando quase todas as extensões

Instalando ou atualizando vários reprodutores de mídia no Gentoo Linux ou Sabayon

Diminuindo tamanho de imagens (truques simples)

Proteção simples de CPUs e equipamentos eletrônicos contra maresia

muCommander - um gerenciador de arquivos completo, amigável e fácil de instalar

Leitura recomendada

Conectando Linux com celulares através de Bluetooth

Forçando eth2 virar eth0 (e vice-versa)

Slackware + Gentoo - Dual-boot sem live-CD/USB

Instalando o htop no Oracle Linux Server 7 a partir do código fonte

III Encontro Nacional de Usuários Slackware

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts