O que aconteceu com o pacote ia32-libs?


Respostas:


97

O pacote ia32-libs foi um hack para instalar pacotes de 32 bits em uma instalação de 64 bits. Desde o Ubuntu versão 11.10 (Oneiric), o Multi Arch foi adicionado. Um dos objetivos é remover o ia32-libspacote. Em vez disso, você deve instalar as bibliotecas de 32 bits de um pacote com:

sudo apt-get install package-name:i386

Você não precisa se preocupar com isso para pacotes nos repositórios padrão (por exemplo, o winepacote). Para software externo, é um pouco mais difícil, porque você precisa encontrar as dependências manualmente. Nesse caso, use seu mecanismo de pesquisa favorito para encontrar de quais bibliotecas você precisa.

Parece que o ia32-libs ainda existe, mas apenas como um pacote de conveniência para incluir bibliotecas comuns de 32 bits. Este pacote agora usa o Multi Arch para instalar os pacotes de 32 bits corretamente.


17
Bem, como se deve encontrar todas as dependências e a primeira instalação: i386 delas?
user117

10
@ Wingman Run ldd, passando um caminho para o binário como argumento. Se a saída contiver uma linha como libz.so.1 => not found, então você precisa encontrar libz.so.1. Você pode usar packages.ubuntu.com ou apt-file searchpara encontrar o pacote que contém esse arquivo. No exemplo que eu dei, você precisa instalar zlib1g:i386.
Lekensteyn 16/09/12

11
Estou em um computador com o ubuntu 10.10. Seguindo algum tutorial sobre desenvolvimento Android, tenho que instalar o ia32-libs. sua resposta fala sobre 11.10, mas para este computador? O que eu tenho que fazer?
Nkint 25/10/12

11
O @nkint 10.10 não é mais suportado. Se você quiser continuar, precisará alterar as fontes do pacote . Na 10.10, você precisa instalar o ia32-libs. Mas, mesmo assim, não há garantia de que o SDK do Android funcione com isso.
Lekensteyn 26/10/12

11
@FelipeMicaroniLalli Você precisa substituir package-namepelo nome real. Use lddpara descobrir, veja o segundo comentário acima.
Lekensteyn 29/03/2015

43

Ubuntu 13.10

O que aconteceu?

O ia32-libspacote foi completamente substituído por lib32z1 lib32ncurses5 lib32bz2-1.0. Isso não deve ser um problema, porque sua funcionalidade ainda está lá, apenas em outros pacotes. No entanto, não vivemos em um mundo ideal, onde todos mantêm seus pacotes e todo o software é FLOSS; portanto, alguns pacotes ainda dependem das ia32-libs.

Como posso instalar o pacote x que depende do ia32-libs

Existem 2 maneiras:

  1. Você pode reembalá-lo manualmente para que não dependa ia32-libsmais. (preferido)
  2. Você pode instalar o ia32-libs a partir do repositório Ubuntu 13.04 (Raring Ringtail) ( não é de todo preferido !, apenas se o primeiro método não funcionar )

1. reembalar pacotes antigos

Usarei o receptor citrix como exemplo, mas você pode usar este método para qualquer pacote .deb:

Primeiro, baixe o pacote citrix receiver .deb do site deles e faça com que um diretório temporário faça a invasão.

mkdir ica_temp

Extraia o pacote

dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN

Abra o arquivo no gedit (ou seu editor favorito)

sudo -H gedit ica_temp/DEBIAN/control

Encontre a linha que começa com Depends:.... remover ia32-libse adicionarlib32z1 lib32ncurses5 lib32bz2-1.0

Reconstrua o pacote modificado

dpkg -b ica_temp icaclient-modified.deb

E instale

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f

A instalação do receptor Citrix também requer alguns hackers. Você pode encontrar as instruções completas de instalação no wiki do Ubuntu

Você pode fazer isso com qualquer pacote .deb antigo que ainda dependa de ia32-libs.

2. Instale o ia32-libs a partir do repositório raring

Observe que é uma prática muito ruim instalar pacotes antigos! Infelizmente, para alguns instaladores binários, você não tem outra opção.

Você pode baixar o pacote ia32-libs do repositório raring . Faça o download e instale-o manualmente; as dependências devem ser resolvidas.



11
@Elipticalview "Código aberto e gratuito". Alterou para o FLOSS (software gratuito / gratuito e de código aberto), o que é mais comum.
Galgalesh

"Reembalar pacotes antigos" funciona principalmente para o Ubuntu 16.04 Xenial - você só precisa adicionar algumas adaptações aos nomes dos pacotes, geralmente adicionando o ": i386" -namespace ao final dos nomes dos pacotes. Alguns dos pacotes têm nomes diferentes também, como libbz2-1.0: i386
Christian Benke

6

Eu li que você deveria instalar o ia32-libs-multiarchpacote. No entanto, não funcionou para mim e recebo este erro

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.

A solução que funcionou para mim foi instalar os seguintes pacotes:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

Trabalha para luna OS elementar também
CamelCased

4

Se você receber esse erro, tente:

sudo apt-get update

Em seguida, tente novamente:

sudo apt-get install ia32-libs

Acabei de fazer uma nova instalação do 12.04, esse pacote ainda está disponível nos repositórios. Na verdade, eu mesmo recebi esse erro antes de executar a atualização. Depois, funcionou bem.


1

Eu acredito que esse caso de uso específico foi substituído pelos pacotes "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", que provavelmente é uma resposta mais específica e útil do que dizer "você pode usar vários arcos".


2
O que? Não há nenhum caso de uso específico nesta pergunta.
precisa saber é

11
@ gertvdijk: O próprio pacote representa um caso de uso limitado; para um propósito mais geral, você pode fazer um arco múltiplo, mas para as pessoas que usavam este pacote específico antes, parece ter sido substituído por "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", que você pode instalar sem precisar usar o multi-arch : que abrange os mesmos casos de uso do pacote anterior. Em essência, achei essas respostas inúteis, pois o multi-arch foi um exagero pelo motivo da existência de ia32-libs, fiquei surpreso por não haver uma substituição direta mais direta e não fiquei desapontado quando pesquisei mais sobre isso.
precisa

Essa foi a resposta mais simples que resolveu um problema semelhante para mim. Mesmo que as bibliotecas indicadas não pareçam ter nada a ver com iniciar um binário geral, funcionou.
Por Knytt

-2

Instalei o ia32-libs assim (eu executo o Ubuntu 13.04 Raring Ringtail em uma máquina de 64 bits):

Verifique a arquitetura própria:

$ dpkg --print-architecture

Verifique se uma arquitetura estrangeira está instalada:

$ dpkg --print-foreign-architectures

Dependendo dos resultados dos dois comandos acima, os três comandos a seguir podem funcionar (demorou muito tempo para processar no meu caso):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs

4
Eu recebo:Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0
foobarbecue
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.