Sabayon Linux: instalando duas versões de pacotes

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

[ Hits: 5.712 ]

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]

Alternativas ao Dropbox e outros serviços de armazenamento em nuvem

Instalação de pacotes em sistemas Sabayon sem acesso à rede

Como instalar pacotes e/ou atualizar completamente o Mandriva com facilidade

Configurando aceleração 3D e Compiz-Fusion no Mandriva 2009.0

Leitura recomendada

Configurando opções avançadas do KDE

Sbotools: pacotes em .txz, com o "seu nome" e no lugar que você quer

Reforçando os serviços básicos com SSL

Compilando o kernel do Linux para outras arquiteturas de forma (muito) rápida

Substituir o hotplug pelo udev no Debian

  

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