¿Qué pasó con el paquete ia32-libs?


104

El ia32-libspaquete ya no está presente en los repositorios Ubuntu 12.04 para un sistema de 64 bits. ¿Hay algún paquete de reemplazo disponible para descargar?



2
+1, solo iba a hacer exactamente la misma pregunta. ¡SO tiene realmente buenas sugerencias de preguntas!
ulidtko

Respuestas:


97

El paquete ia32-libs fue un truco para instalar paquetes de 32 bits en una instalación de 64 bits. Desde Ubuntu versión 11.10 (Oneiric), se ha agregado Multi Arch . Uno de los objetivos es eliminar el ia32-libspaquete. En su lugar, debe instalar las bibliotecas de 32 bits de un paquete con:

sudo apt-get install package-name:i386

No tiene que preocuparse por esto para los paquetes en los repositorios estándar (por ejemplo, el winepaquete). Para el software externo, es un poco más difícil porque tienes que encontrar las dependencias manualmente. En ese caso, use su motor de búsqueda favorito para encontrar qué bibliotecas necesita.

Parece que todavía existen ia32-libs, pero simplemente como un paquete conveniente para incluir bibliotecas comunes de 32 bits. Este paquete ahora usa Multi Arch para instalar los paquetes de 32 bits correctamente.


17
Bueno, ¿cómo se supone encontrar todas las dependencias y primero instalar: i386 de esos?
user117

10
@wingman Run ldd, pasando una ruta al binario como argumento. Si la salida contiene una línea como libz.so.1 => not found, entonces necesita encontrar libz.so.1. Puede usar packages.ubuntu.com o apt-file searchpara encontrar el paquete que contiene ese archivo. En el ejemplo que di, necesitas instalar zlib1g:i386.
Lekensteyn

1
Estoy en una computadora con Ubuntu 10.10. siguiendo un tutorial sobre desarrollo de Android, tengo que instalar las ia32-libs. su respuesta habla sobre 11.10, pero para esta computadora? ¿lo que tengo que hacer?
nkint

1
@nkint 10.10 ya no es compatible. Si desea continuar, debe cambiar las fuentes de su paquete . En 10.10 necesitas instalar ia32-libs. Pero incluso entonces no hay garantía de que el SDK de Android funcione con eso.
Lekensteyn

1
@FelipeMicaroniLalli Debe reemplazar package-namepor el nombre real. Use lddpara descubrir, vea el segundo comentario arriba.
Lekensteyn

43

Ubuntu 13.10

¿Que pasó?

El ia32-libspaquete ha sido completamente reemplazado por lib32z1 lib32ncurses5 lib32bz2-1.0. Esto no debería ser un problema porque su funcionalidad sigue ahí, solo en otros paquetes. Sin embargo, no vivimos en un mundo ideal donde todos mantienen sus paquetes y todo el software es FLOSS, por lo que algunos paquetes aún dependen de las ia32-libs.

¿Cómo puedo instalar el paquete x que depende de ia32-libs?

Hay 2 formas:

  1. Puede volver a empaquetarlo manualmente para que ya no dependa de él ia32-libs. (privilegiado)
  2. Puede instalar ia32-libs desde el repositorio Ubuntu 13.04 (Raring Ringtail) (¡ no se prefiere en absoluto !, solo si el primer método no funciona )

1. Reempaquetar paquetes viejos

Usaré el receptor citrix como ejemplo, pero puede usar este método para cualquier paquete .deb:

Primero, descargue el paquete .deb del receptor citrix de su sitio web y haga que un directorio temporal haga el pirateo.

mkdir ica_temp

Extrae el paquete

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 el archivo en gedit (o su editor favorito)

sudo -H gedit ica_temp/DEBIAN/control

Encuentra la línea que comienza con Depends:.... eliminar ia32-libsy agregarlib32z1 lib32ncurses5 lib32bz2-1.0

Reconstruir el paquete modificado

dpkg -b ica_temp icaclient-modified.deb

E instalarlo

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

La instalación del receptor citrix también requiere piratería Puede encontrar las instrucciones completas de instalación en el wiki de Ubuntu

Puede hacer esto con cualquier paquete antiguo .deb que todavía dependa de ia32-libs.

2. Instale ia32-libs desde el repositorio raring

¡Tenga en cuenta que es una muy mala práctica instalar paquetes antiguos! Lamentablemente, para algunos instaladores binarios, no tienes otra opción.

Puede descargar el paquete ia32-libs del repositorio raring . Descárguelo e instálelo manualmente, luego se resolverán las dependencias.



1
@Elipticalview "Libre y de código abierto". Lo cambié a FLOSS (Free / Libre y software de código abierto), que es más común.
Galgalesh

"Volver a empaquetar paquetes antiguos" funciona principalmente para Ubuntu 16.04 Xenial: solo necesita agregar algunas adaptaciones a los nombres de paquetes, generalmente agregando el espacio de nombres ": i386" al final de los nombres de paquetes. Algunos de los paquetes también tienen nombres diferentes, como libbz2-1.0: i386
Christian Benke

6

Leí que se supone que debes instalar el ia32-libs-multiarchpaquete en su lugar. Sin embargo, no funcionó para mí y recibo este error

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

La solución que funcionó para mí fue instalar los siguientes paquetes:

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

Funciona para el sistema operativo elemental luna también
camelCaseD

4

Si obtiene ese error, intente:

sudo apt-get update

Luego inténtalo de nuevo:

sudo apt-get install ia32-libs

Acabo de hacer una nueva instalación de 12.04, ese paquete todavía está disponible en los repositorios. De hecho, recibí ese error antes de ejecutar la actualización. Luego, funcionó bien.


1

Creo que este caso de uso específico fue reemplazado por los paquetes "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", que probablemente sea una respuesta más específica y útil que decir "puede usar multi-arco".


2
¿Qué? No hay un caso de uso específico en esta pregunta.
gertvdijk

1
@gertvdijk: el paquete en sí mismo representa un caso de uso limitado; para un propósito más general, puede realizar múltiples arcos, pero para las personas que usaban este paquete específico anteriormente, parece haber sido reemplazado por "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", que puede instalar sin tener que usar múltiples arcos : que cubre los mismos casos de uso que el paquete anterior. En esencia, encontré estas respuestas inútiles, ya que el arco múltiple era excesivo por la razón de que existían ia32-libs, me sorprendió que no hubiera un reemplazo directo más directo y no me decepcioné cuando investigué esto más a fondo.
saurik

Esta fue la respuesta más simple que resolvió un problema similar para mí. Aunque las bibliotecas indicadas no parecen tener nada que ver con el inicio de un binario general, sí funcionó.
Por Knytt

-2

Instalé las ia32-libs de esta manera (ejecuto Ubuntu 13.04 Raring Ringtail en una máquina de 64 bits):

Comprobar arquitectura propia:

$ dpkg --print-architecture

Compruebe si hay una arquitectura extranjera instalada:

$ dpkg --print-foreign-architectures

Dependiendo de los resultados de los dos comandos anteriores, los siguientes tres comandos podrían funcionar (en mi caso tomó mucho tiempo procesarlos):

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

44
Obtengo: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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.