¿Cómo puedo instalar las versiones de 32 y 64 bits del mismo paquete -dev?


11

Estoy tratando de instalar libsqlite3-devpara ambos i386y amd64en la misma máquina Ubuntu 12.04. Estoy desarrollando una aplicación que utiliza sqlite3 y quiero compilar y probar las versiones de 32 bits y 64 bits.

Sin embargo, parece que el libsqlite3-dev:i386paquete es incompatible con el libsqlite3-dev:amd64, ya que aptsiempre quiere eliminar uno cuando instalo el otro.

¿Hay alguna forma de instalar ambos en el mismo sistema?

Respuestas:


5

No puede instalar los dos paquetes -dev en el mismo sistema al mismo tiempo. Solo puede instalar uno u otro, ya que contienen algunos de los mismos archivos. Multi-arch no habilita el soporte de compilación cruzada, que es lo que está tratando de hacer. Si :i386tuviera que instalar la versión del paquete de desarrollo sqlite y compilar con el compilador de 64 bits, seguramente tendrá una compilación rota como resultado.

Su mejor opción es compilar en un chroot de 32 bits o VM, para construir la versión de 32 bits.


Los archivos de encabezado están en ambos paquetes, pero su contenido es idéntico. Aún más, para otros -devpaquetes como los zlib1gque también tienen archivos compartidos (e idénticos), es posible instalar ambas versiones simultáneamente.
Wim

1
Acabo de instalar a la fuerza ambos paquetes, esto no parece romper nada y ahora puedo construir (y ejecutar correctamente) ambas versiones. ¿Es este un caso en el que el responsable del paquete declara un conflicto en el que realmente no existe?
Wim

0

Personalmente, no considero instalaciones forzadas, incluso como último recurso. Creo que puede encontrar pbuilder bastante útil. Aquí hay un CÓMO para eso. Incluso puede instalar diferentes distribuciones para ese propósito y escribir el proceso de construcción para diferentes objetivos al mismo tiempo.

http://ubuntuforums.org/showthread.php?t=206382

Por lo tanto, incluso puede dejar todos los paquetes de desarrollo desinstalados. Se instalan en esa instalación temporal de chroot.

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.