Wie kann ich sowohl 32- als auch 64-Bit-Versionen desselben -dev-Pakets installieren?

11

Ich versuche, libsqlite3-devfür beide i386und amd64auf demselben Ubuntu 12.04-Computer zu installieren . Ich entwickle eine Anwendung, die sqlite3 verwendet, und möchte sowohl die 32-Bit- als auch die 64-Bit-Version kompilieren und testen.

Es sieht jedoch so aus, als ob das libsqlite3-dev:i386Paket nicht mit dem kompatibel ist libsqlite3-dev:amd64, da aptich immer wieder eines entfernen möchte, wenn ich das andere installiere.

Gibt es eine Möglichkeit, beide auf demselben System zu installieren?

Wim
quelle

Antworten:

5

Sie können nicht beide -dev-Pakete gleichzeitig auf demselben System installieren. Sie können nur die eine oder andere installieren, da sie einige der gleichen Dateien enthalten. Multi-Arch aktiviert keine Cross-Compilation-Unterstützung, was Sie versuchen. Wenn Sie die :i386Version des SQLite-Entwicklungspakets installieren und mit dem 64-Bit-Compiler erstellen, wird dies mit ziemlicher Sicherheit zu einem fehlerhaften Build führen.

Am besten kompilieren Sie in einer 32-Bit-Chroot oder VM, um die 32-Bit-Version zu erstellen.

Dobey
quelle
Die Header-Dateien befinden sich zwar in beiden Paketen, ihr Inhalt ist jedoch identisch. Sogar noch mehr, für andere -devPakete wie zlib1gdie auch geteilt (und identisch) Dateien, es ist möglich , sowohl die Version gleichzeitig zu installieren.
Wim
1
Ich habe gerade beide Pakete zwangsweise installiert, dies schien nichts zu beschädigen und ich kann jetzt beide Versionen erstellen (und korrekt ausführen). Ist dies nur ein Fall, in dem der Paketbetreuer einen Konflikt deklariert, bei dem es nicht wirklich einen gibt?
Wim
0

Persönlich betrachte ich Zwangsinstallationen nicht einmal als letzten Ausweg. Ich denke, Sie finden pbuilder vielleicht sehr nützlich. Hier ist ein HOWTO dafür. Zu diesem Zweck können Sie sogar verschiedene Distributionen installieren und den Erstellungsprozess für verschiedene Ziele gleichzeitig skripten.

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

Sie können also sogar alle Entwicklungspakete deinstallieren lassen. Sie werden in diese temporäre Chroot-Installation eingebaut.


quelle