O ia32-libspacote não está mais presente nos repositórios Ubuntu 12.04 para um sistema de 64 bits. Existem pacotes de substituição disponíveis para download?
+1, ia fazer exatamente a mesma pergunta. SO tem ótimas sugestões de perguntas!
precisa saber é
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.
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:
Você pode reembalá-lo manualmente para que não dependa ia32-libsmais. (preferido)
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.
@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:
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.
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".
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):
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
Respostas:
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-libs
pacote. Em vez disso, você deve instalar as bibliotecas de 32 bits de um pacote com:Você não precisa se preocupar com isso para pacotes nos repositórios padrão (por exemplo, o
wine
pacote). 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.
fonte
ldd
, passando um caminho para o binário como argumento. Se a saída contiver uma linha comolibz.so.1 => not found
, então você precisa encontrarlibz.so.1
. Você pode usar packages.ubuntu.com ouapt-file search
para encontrar o pacote que contém esse arquivo. No exemplo que eu dei, você precisa instalarzlib1g:i386
.package-name
pelo nome real. Useldd
para descobrir, veja o segundo comentário acima.Ubuntu 13.10
O que aconteceu?
O
ia32-libs
pacote foi completamente substituído porlib32z1 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:
ia32-libs
mais. (preferido)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.
Extraia o pacote
Abra o arquivo no gedit (ou seu editor favorito)
Encontre a linha que começa com
Depends:...
. removeria32-libs
e adicionarlib32z1 lib32ncurses5 lib32bz2-1.0
Reconstrua o pacote modificado
E instale
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.
fonte
Eu li que você deveria instalar o
ia32-libs-multiarch
pacote. No entanto, não funcionou para mim e recebo este erroA solução que funcionou para mim foi instalar os seguintes pacotes:
fonte
Se você receber esse erro, tente:
Em seguida, tente novamente:
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.
fonte
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".
fonte
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:
Verifique se uma arquitetura estrangeira está instalada:
Dependendo dos resultados dos dois comandos acima, os três comandos a seguir podem funcionar (demorou muito tempo para processar no meu caso):
fonte
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