Multiarch-Pakete
Multiarch-Pakete
Hallo zusammen,
ich bin nun langjähriger Debian-(unstable-)Benutzer und eigentlich immer sehr gut mit dem System zurecht gekommen. Jetzt muss ich aber doch mal das Forum bemühen: Ich kompiliere schon seit längerem (z.B.) mein Wine selbst auf meinem 64-bit-System. Mit der Umstellung von ia32-libs auf multiarch hatte ich jedoch zunächst Probleme, da einige der i386-multiarch-Pakete sich aufgrund von Konflikten mit dem amd64-Paket nicht ohne weiteres installieren ließen.
Nach dem Release von Wheezy habe ich nun selbigen Versuch erneut unternommen und mich endgültig von ia32-libs getrennt. Bin jedoch erneut kläglich gescheitert. Beim ersten problematischen Paket handelt es sich um libfreetype6-dev. Hierzu habe ich auch einen Bugreport gefunden. Ich bin jedoch auch schon auf weitere zahlreiche Pakete gestoßen, die sich nicht installieren ließen. Auch auf ein nicht-dev-Paket kann ich bisher nicht installieren: libcurl3:i386
An hilfreichen Informationen kann ich hierzu kaum etwas finden. Extra eine 32-bit-chroot-Umgebung einrichten zu müssen erscheint mir nicht im Sinne des Erfinders. Der Sinn von multiarch soll es doch gerade sein, Pakete mehrerer Architekturen parallel installieren zu können, oder?
Da multiarch jetzt "stable" ist, habe ich die Vermutung, dass ich irgendetwas falsch mache und hoffe, dass man mir hier auf die Sprünge helfen kann.
Vielen Dank und Gruß!
ich bin nun langjähriger Debian-(unstable-)Benutzer und eigentlich immer sehr gut mit dem System zurecht gekommen. Jetzt muss ich aber doch mal das Forum bemühen: Ich kompiliere schon seit längerem (z.B.) mein Wine selbst auf meinem 64-bit-System. Mit der Umstellung von ia32-libs auf multiarch hatte ich jedoch zunächst Probleme, da einige der i386-multiarch-Pakete sich aufgrund von Konflikten mit dem amd64-Paket nicht ohne weiteres installieren ließen.
Nach dem Release von Wheezy habe ich nun selbigen Versuch erneut unternommen und mich endgültig von ia32-libs getrennt. Bin jedoch erneut kläglich gescheitert. Beim ersten problematischen Paket handelt es sich um libfreetype6-dev. Hierzu habe ich auch einen Bugreport gefunden. Ich bin jedoch auch schon auf weitere zahlreiche Pakete gestoßen, die sich nicht installieren ließen. Auch auf ein nicht-dev-Paket kann ich bisher nicht installieren: libcurl3:i386
An hilfreichen Informationen kann ich hierzu kaum etwas finden. Extra eine 32-bit-chroot-Umgebung einrichten zu müssen erscheint mir nicht im Sinne des Erfinders. Der Sinn von multiarch soll es doch gerade sein, Pakete mehrerer Architekturen parallel installieren zu können, oder?
Da multiarch jetzt "stable" ist, habe ich die Vermutung, dass ich irgendetwas falsch mache und hoffe, dass man mir hier auf die Sprünge helfen kann.
Vielen Dank und Gruß!
Re: Multiarch-Pakete
Code: Alles auswählen
$ dpkg --help | grep arch
...
--add-architecture <Arch> <Arch> zur Liste der Architekturen
--remove-architecture <Arch> <Arch> aus der Liste der Architekturen
--print-architecture Architektur von dpkg ausgeben.
--print-foreign-architectures Erlaubte fremde Architekturen ausgeben.
--assert-multi-arch.
Code: Alles auswählen
dpkg --add-architecture i386
Bei einem default-artigen Eintrag einer Quelle in sources.list
deb url bla foo
würden dann bei einem 'apt-get update' Paketlisten alle aktivierten Architekturen (sofern auf der url verfügbar)
heruntergeladen.
Eine Einschränkung ist möglich per:
deb [arch=amd64,i386] url bla foo
deb [arch=amd64] url bla foo
('man sources.list')
Eine Installation dann zum Beispiel
Code: Alles auswählen
aptitude install libcurl3:i386
Vergleiche dann auch
Code: Alles auswählen
aptitude versions libcurl3
Code: Alles auswählen
apt-cache policy libcurl3
apt-cache policy libcurl3:amd64
apt-cache policy libcurl3:i386
Code: Alles auswählen
apt-cache policy | grep -vi translat
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Multiarch-Pakete
Hallo rendegast,
die Architektur habe ich natürlich als allererestes schon aktiviert gehabt und auch die Paketquellen neu geladen.
Mit einigen Paketen habe ich dennoch Abhängigkeitsprobleme:
Ähnliches mit libcurl3:
Wenn ich mir dann die vorgeschlagenen Möglichkeiten anschaue kann ich wählen zwischen dem Deinstallieren zahlreicher (und essenzieller) Pakete oder dem Nicht-installieren von dem jeweiligen i386-Paket.
die Architektur habe ich natürlich als allererestes schon aktiviert gehabt und auch die Paketquellen neu geladen.
Mit einigen Paketen habe ich dennoch Abhängigkeitsprobleme:
Code: Alles auswählen
$ aptitude install libfreetype6-dev:i386
Die folgenden NEUEN Pakete werden zusätzlich installiert:
libc6-dev:i386{a} libfreetype6-dev:i386{b} linux-libc-dev:i386{a} zlib1g-dev:i386{a}
Die folgenden Pakete werden EMPFOHLEN, aber NICHT installiert:
bcc:i386 clang-3.2:i386 gcc:i386 gcc-4.4:i386 gcc-4.6:i386 gcc-4.7:i386 gcc-4.8:i386 tcc:i386
0 Pakete aktualisiert, 4 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
7.399 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 27,5 MB zusätzlich belegt sein.
Die folgenden Pakete haben verletzte Abhängigkeiten:
libfreetype6-dev : Kollidiert mit: libfreetype6-dev:i386 aber 2.4.9-1.1 soll installiert werden.
libfreetype6-dev:i386 : Kollidiert mit: libfreetype6-dev aber 2.4.9-1.1 ist installiert.
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1) libfreetype6-dev:i386 [Nicht installiert]
Code: Alles auswählen
$ aptitude install libcurl3:i386
Die folgenden NEUEN Pakete werden zusätzlich installiert:
libcomerr2:i386{a} libcurl3:i386 libdb5.1:i386{a} libgssapi-krb5-2:i386{ab} libidn11:i386{a}
libk5crypto3:i386{ab} libkeyutils1:i386{a} libkrb5-3:i386{ab} libkrb5support0:i386{ab} libldap-2.4-2:i386{a}
librtmp0:i386{a} libsasl2-2:i386{a} libssh2-1:i386{a}
Die folgenden Pakete werden EMPFOHLEN, aber NICHT installiert:
krb5-locales libsasl2-modules:i386
0 Pakete aktualisiert, 13 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
2.080 kB/2.556 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 5.634 kB zusätzlich belegt sein.
Die folgenden Pakete haben verletzte Abhängigkeiten:
libgssapi-krb5-2 : Beschädigt: libgssapi-krb5-2:i386 (!= 1.10.1+dfsg-6) aber 1.10.1+dfsg-5 soll installiert werden.
libgssapi-krb5-2:i386 : Beschädigt: libgssapi-krb5-2 (!= 1.10.1+dfsg-5) aber 1.10.1+dfsg-6 ist installiert.
libkrb5-3 : Beschädigt: libkrb5-3:i386 (!= 1.10.1+dfsg-6) aber 1.10.1+dfsg-5 soll installiert werden.
libkrb5-3:i386 : Beschädigt: libkrb5-3 (!= 1.10.1+dfsg-5) aber 1.10.1+dfsg-6 ist installiert.
libkrb5support0 : Beschädigt: libkrb5support0:i386 (!= 1.10.1+dfsg-6) aber 1.10.1+dfsg-5 soll installiert werden.
libkrb5support0:i386 : Beschädigt: libkrb5support0 (!= 1.10.1+dfsg-5) aber 1.10.1+dfsg-6 ist installiert.
libk5crypto3 : Beschädigt: libk5crypto3:i386 (!= 1.10.1+dfsg-6) aber 1.10.1+dfsg-5 soll installiert werden.
libk5crypto3:i386 : Beschädigt: libk5crypto3 (!= 1.10.1+dfsg-5) aber 1.10.1+dfsg-6 ist installiert.
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1) libcurl3:i386 [Nicht installiert]
2) libgssapi-krb5-2:i386 [Nicht installiert]
3) libk5crypto3:i386 [Nicht installiert]
4) libkrb5-3:i386 [Nicht installiert]
5) libkrb5support0:i386 [Nicht installiert]
Re: Multiarch-Pakete
Wenn ich mir jetzt...
libkrb5-3 : Beschädigt: libkrb5-3:i386 (!= 1.10.1+dfsg-6) aber 1.10.1+dfsg-5 soll installiert werden.
libkrb5-3:i386 : Beschädigt: libkrb5-3 (!= 1.10.1+dfsg-5) aber 1.10.1+dfsg-6 ist installiert.
...
http://packages.debian.org/libkrb5-3
resp.
Code: Alles auswählen
$ aptitude versions libkrb5-3
Paket libkrb5-3:
p A 1.10.1+dfsg-5 stable,testing 500
i A 1.10.1+dfsg-5+deb7u1 stable 500
p A 1.10.1+dfsg-6 unstable 100
p A 1.11.3+dfsg-2 experimental 1
Paket libkrb5-3:i386:
p A 1.10.1+dfsg-5 stable,testing,unstable 500
i A 1.10.1+dfsg-5+deb7u1 stable 500
p A 1.11.3+dfsg-2 experimental
hast Du ein Problem mit den Versionen/Repos, insbesondere sid
libkrb5-3:amd64/sid ist installiert, es gibt aber kein libkrb5-3:i386/sid gleicher Version.
Ist halt so ein unstable-Ding, rudere zurück auf testing.
Wegen des libfreetype6-dev-Konflikts:
http://packages.debian.org/wheezy/amd64 ... v/filelist
http://packages.debian.org/wheezy/i386/ ... v/filelist
natürlich ein Datei-Konflikt.
Diese Header (Quelltext!) sind wohl ohnehin gleich, eine separate Architektur würde dann auch nicht benötigt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Multiarch-Pakete
[libkrb5-3]
Wenn das so ein "unstable-Ding" ist, das in absehbarer Zeit behoben wird kann ich damit vorerst leben.
[libfreetype6-dev]
Und was ist mit den Libraries, die in /usr/lib/x86_64-linux-gnu/ bzw. /usr/lib/i386-linux-gnu/ liegen? Ich weiss nicht genau was alles benötigt wird, aber das Kompilieren von Programmen schlägt jedenfalls fehl. Das amd64-dev-Paket libfreetyp ist ja installiert.
Wenn das so ein "unstable-Ding" ist, das in absehbarer Zeit behoben wird kann ich damit vorerst leben.
[libfreetype6-dev]
Und was ist mit den Libraries, die in /usr/lib/x86_64-linux-gnu/ bzw. /usr/lib/i386-linux-gnu/ liegen? Ich weiss nicht genau was alles benötigt wird, aber das Kompilieren von Programmen schlägt jedenfalls fehl. Das amd64-dev-Paket libfreetyp ist ja installiert.
Code: Alles auswählen
Package: libfreetype6-dev
Status: install ok installed
[...]
Architecture: amd64
[...]
Version: 2.4.9-1.1
[...]
Code: Alles auswählen
checking for -lfreetype... not found
configure: error: FreeType 32-bit development files not found. Fonts will not be built.
Re: Multiarch-Pakete
Eventuell geht es doch um diese?
/usr/lib/i386-linux-gnu/libfreetype.a
/usr/lib/i386-linux-gnu/libfreetype.la
/usr/lib/i386-linux-gnu/libfreetype.so
/usr/lib/i386-linux-gnu/pkgconfig/freetype2.pc
<->
/usr/lib/x86_64-linux-gnu/libfreetype.a
/usr/lib/x86_64-linux-gnu/libfreetype.la
/usr/lib/x86_64-linux-gnu/libfreetype.so
/usr/lib/x86_64-linux-gnu/pkgconfig/freetype2.pc
Dann muß es wohl doch als i386 installiert werden,
eine reicht einfache Auflösung gelingt aber nur '--without-recommends' ohne '--without-recommends' beißt sich das mit dem installierten gcc.
In Deinem Fall zuerst halt Deinstallieren des amd64-Paketes.
Bei mir ist bei installiertem amd64-dev dessen Entfernung gleich in der ersten Auswahl-Alternative.
/usr/lib/i386-linux-gnu/libfreetype.a
/usr/lib/i386-linux-gnu/libfreetype.la
/usr/lib/i386-linux-gnu/libfreetype.so
/usr/lib/i386-linux-gnu/pkgconfig/freetype2.pc
<->
/usr/lib/x86_64-linux-gnu/libfreetype.a
/usr/lib/x86_64-linux-gnu/libfreetype.la
/usr/lib/x86_64-linux-gnu/libfreetype.so
/usr/lib/x86_64-linux-gnu/pkgconfig/freetype2.pc
Dann muß es wohl doch als i386 installiert werden,
eine reicht einfache Auflösung gelingt aber nur '--without-recommends'
Code: Alles auswählen
$ aptitude -s install libfreetype6-dev --without-recommends
Die folgenden NEUEN Pakete werden zusätzlich installiert:
libfreetype6-dev [2.4.9-1.1]
0 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
805 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 3.439 kB zusätzlich belegt sein.
$ aptitude -s install libfreetype6-dev:i386 --without-recommends
Die folgenden NEUEN Pakete werden zusätzlich installiert:
libc6-dev:i386{a} [2.13-38] libfreetype6-dev:i386 [2.4.9-1.1]
linux-libc-dev:i386{a} [3.2.41-2+deb7u2] zlib1g-dev:i386{a} [1:1.2.7.dfsg-13]
Die folgenden Pakete werden EMPFOHLEN, aber NICHT installiert:
bcc:i386 clang-3.2:i386 clang-3.3:i386 gcc:i386 gcc-4.4:i386 gcc-4.6:i386
gcc-4.7:i386 gcc-4.8:i386 tcc:i386
0 Pakete aktualisiert, 4 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
6.740 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 25,1 MB zusätzlich belegt sein.
In Deinem Fall zuerst halt Deinstallieren des amd64-Paketes.
was wohl auch als eine weitere Alternative angeboten würde.Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1) libfreetype6-dev:i386 [Nicht installiert]
Bei mir ist bei installiertem amd64-dev dessen Entfernung gleich in der ersten Auswahl-Alternative.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Multiarch-Pakete
Wenn ich versuche libfreetype6-dev (amd64) zu deinstallieren werden mir gleich weitere Pakete genannt, die aber von libfreetype6-dev abhängen:
Ich habe gerade mal probeweise versucht die Pakete manuell zu deinstallieren was im einzelnen mehrfach weitere Abhängigkeiten nach sich gezogen hat. U.a. musste ich beispielsweise libgtk2.0-dev und libsdl2-dev komplett entfernen.
libfreetype6-dev konnte ich danach zwar in der 32-bit-Variante installieren, die anderen dev-Pakete benötige ich aber für andere Applikationen, die ich in 64bit kompilieren möchte.
Unter "multiarch" würde ich eigentlich etwas anderes verstehen.
Code: Alles auswählen
$ aptitude remove libfreetype6-dev
Die folgenden Pakete werden ENTFERNT:
libfreetype6-dev
0 Pakete aktualisiert, 0 zusätzlich installiert, 1 werden entfernt und 0 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 3.439 kB frei werden.
Die folgenden Pakete haben verletzte Abhängigkeiten:
libpango1.0-dev : Hängt ab von: libfreetype6-dev aber es soll nicht installiert werden.
libdirectfb-dev : Hängt ab von: libfreetype6-dev aber es soll nicht installiert werden.
libcairo2-dev : Hängt ab von: libfreetype6-dev (>= 2.1.10) aber es soll nicht installiert werden.
libxft-dev : Hängt ab von: libfreetype6-dev aber es soll nicht installiert werden.
libfontconfig1-dev : Hängt ab von: libfreetype6-dev (>= 2.1.7) aber es soll nicht installiert werden.
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1) libfreetype6-dev [2.4.9-1.1 (now, unstable)]
Diese Lösung akzeptieren? [Y/n/q/?] n
*** Keine weiteren Lösungen vorhanden ***
libfreetype6-dev konnte ich danach zwar in der 32-bit-Variante installieren, die anderen dev-Pakete benötige ich aber für andere Applikationen, die ich in 64bit kompilieren möchte.
Unter "multiarch" würde ich eigentlich etwas anderes verstehen.
Re: Multiarch-Pakete
Diese Konflikte sehe ich gerade bei einer ganzen Reihe dev-Pakete.
EDIT Eigentlich bei allen.
'multiarch' bezieht sich dann entweder nicht auf diese,
oder in der Beziehung doch noch kein "stable" wheezy.
http://wiki.debian.org/Multiarch
"The existing proposals allow for the co-installation of libraries and headers for different architectures, but not (yet) binaries. " bezieht sich da IMO auch auf dev-Pakete.
"Multiarch also simplifies cross-building, where foreign-architecture libraries and headers are needed on a system during building. " Naja.
Einfachster walkaround wird wohl eine 32bit-VM fürs Bauen sein.
Vielleicht sollte jede Architektur ihr eigenes root-Verzeichnis bekommen?
EDIT Eigentlich bei allen.
'multiarch' bezieht sich dann entweder nicht auf diese,
oder in der Beziehung doch noch kein "stable" wheezy.
http://wiki.debian.org/Multiarch
"The existing proposals allow for the co-installation of libraries and headers for different architectures, but not (yet) binaries. " bezieht sich da IMO auch auf dev-Pakete.
"Multiarch also simplifies cross-building, where foreign-architecture libraries and headers are needed on a system during building. " Naja.
Einfachster walkaround wird wohl eine 32bit-VM fürs Bauen sein.
Vielleicht sollte jede Architektur ihr eigenes root-Verzeichnis bekommen?
Zuletzt geändert von rendegast am 10.06.2013 07:21:43, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Multiarch-Pakete
Ja, wie gesagt sind mir auch noch zahlreiche weitere solche Konflikte aufgefallen, habe mir dann aber die Pakete nicht im einzelnen gemerkt.
Wie das letztendlich gelöst wird ist mir eigentlich egal, solange es denn gelöst wird.
Dass Debian in diesem Zustand mit multiarch in stable übergegangen ist kann ich nicht verstehen. Vielleicht hätten wenigstens die alten ia32-libs*-Pakete noch als Alternative irgendwie beibehalten werden können. Momentan überlege ich ernsthaft, eine alternative Distribution auszuprobieren, denn so kann ich faktisch System nicht wie vorher weiterverwenden. Und zu viel rumbasteln möchte ich da auch nicht.
Danke jedenfalls trotzdem für die Unterstützung.
Wie das letztendlich gelöst wird ist mir eigentlich egal, solange es denn gelöst wird.
Dass Debian in diesem Zustand mit multiarch in stable übergegangen ist kann ich nicht verstehen. Vielleicht hätten wenigstens die alten ia32-libs*-Pakete noch als Alternative irgendwie beibehalten werden können. Momentan überlege ich ernsthaft, eine alternative Distribution auszuprobieren, denn so kann ich faktisch System nicht wie vorher weiterverwenden. Und zu viel rumbasteln möchte ich da auch nicht.
Danke jedenfalls trotzdem für die Unterstützung.
Re: Multiarch-Pakete
Auf mich kommt selbiges Problem zu, ich habe bereits --add-architecture ausgefuehrt und kann z.B. xserver-xorg-dev:i386 nicht installieren, da es mit xserver-xorg-dev konfliktiert.
Re: Multiarch-Pakete
@Quix0r
rendegast hat geschrieben: Einfachster walkaround wird wohl eine 32bit-VM fürs Bauen sein.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")