Die aktuelle Version (V1R3) des kostenlosen CAD-Programms DraftSight lässt sich unter der 64Bit-Version von Ubuntu nicht mehr installieren. Läd man sich das Paket herunter und versucht es zu installieren, bekommt man folgende Fehlermeldung:
Fehler: »libdirectfb-extra:i386« kann nicht installiert werden
Die Ursache ist eigentlich klar: DraftSight für Linux wurde von Dassault Systèmes anscheinend ausschließlich für 32Bit-Systeme (i386) gebaut und benötigt daher auch abhängige Pakete für 32Bit-Systeme. Ein 64Bit-System hat aber typischerweise nur amd64-Pakete. Normalerweise lässt sich das Problem lösen, indem man das entsprechende Paket für die andere Architektur (hier eben i386) manuell herunterläd und installiert. Normalerweise, denn es gibt Ausnahmen. libdirectfb-extra ist so eine Ausnahme, die nicht “multiarch-fähig” ist, also nur in einer Version installiert werden kann.
Um die Spannung etwas vorweg zu nehmen: DraftSight funktioniert auch auf einem 64Bit-System super. Weiter unten (unter Lösung) gibt es eine detaillierte Anleitung für die etwas umständliche Installation.
Gestern versuchte ich schon auf die eine oder andere Weise vergeblich, DraftSight dennoch zu installieren.
Heute kam ich auf die Idee, mir doch einfach mal die unterschiedlichen Optionen von dpkg anzusehen und fand neben –force-architecture auch noch depends. Das Ergebnis: mit dpkg --force-architecture,depends -i draftSight.deb lässt sich DraftSight trotz der Warnung nach der unerfüllten Abhängigkeit von libdirectfb-extra:i386 problemlos installieren und es funktioniert danach auch problemlos.
Allerdings funktionieren danach sämtliche Paketverwaltungen nicht mehr so recht, weil sie immer dassault-systemes-draftsight:i386 aufgrund fehlender Abhängigkeiten als defekt einstufen und deinstallieren wollen. Die Oberfläche Synaptic lässt sich gar nicht mehr nutzen, bevor man das Paket wieder deinstalliert hat. Also tat ich wie geheißen und deinstallierte DraftSight wieder. Allerdings wusste ich nun: DraftSight benötigt keine i386-Pakete, um zu funktionieren.
Und damit kommen wir auch schon zur Lösung des Problems: In der Kontrolldatei (control) der Metadaten des Pakets ist festgelegt, dass es für eine i386-Umgebung gebaut wurde. Dadurch werden automatisch auch alle Abhängigkeiten als i386-Pakete angenommen. Wir müssen also nur in dieser Datei festlegen, dass das Paket für alle Architekturen gebaut ist. Wie das geht, erkläre ich in der
Lösung
Zuerst die Voraussetzungen. Wir benötigen zwei Pakete, die wir vorher installieren:
sudo apt-get install libdirectfb-extra ia32-libs
Nun laden wir das DraftSight-Paket von der offiziellen Homepage des Projekts herunter und speichern es im Homeverzeichnis (Persönlicher Ordner). Außerdem erstellen wir dort auch den Ordner “ds”. Nun kann es losgehen:
- Wir entpacken die Daten des Pakets nach /ds
dpkg-deb -x draftSight.deb ds - Wir entpacken die Metadaten des Pakets nach /ds/DEBIAN
dpkg-deb --control draftSight.deb ds/DEBIAN - Wir öffnen die oben bereits erwähnte Kontrolldatei /ds/DEBIAN/control mit gedit und ersetzen hinter Architecture: “i386″ gegen “all” und speichern die Datei:

- Wir packen uns mit dem Inhalt des alten Pakets und der geänderten Kontrolldatei ein neues Paket:
dpkg -b ds ds.deb - Nun installieren wir DraftSight aus unserem neu erstellten Paket:
sudo dpkg -i ds.deb
Fertig! DraftSight sollte sich nun problemlos installieren lassen. Sollten noch Pakete fehlen, wird dpkg dies mitteilen und die Installation abbrechen. Da das Paket nun alle Architekturen unterstützt, können die fehlenden Pakete einfach über die Paketverwaltung nachinstalliert werden.
Viel Erfolg!
Für Fragen, Anregungen und Lobhymnen gibt es wie immer die Kommentare.
Yeah,
bekannte Praxis nochmals gut erklaert. Funktioniert so auch bei so manch anderen Programmen.
Gruss
Man, du bist ja schneller, als dein Schatten!
Ja, wenn es solche Probleme gibt, erinnert man sich doch oft an die Dinge, die man mal Paketstrukturen und Paketverwaltungen gelernt hat ;)
Klar, das funktioniert sicher bei fast jedem halbherzig gepackten Programm in der großen weiten Welt.
Herzlichen Dank!
Für einen Linux-Amateur eine wundervolle Anleitung. Mein DraftSight funktioniert und hab nebenher das erstemal ein deb-Paket gepackt. Wow!
fg Thomas
Vielen Dank hat super geklappt, tolle Anleitung. :-)
Super, freut mich :)