Linux Programmkompatibilität
-
Das ist theoretisches Herbeireden eines Problems wo in der Praxis gar keines ist. Du kannst wie gesagt die Runtime ruhigen Gewissens dynamisch linken. Die sind untereinander auch bei unterschiedlichen Versionen trotzdem sehr kompatibel, aufwärts wie abwärts. Es müsste schon eine Uraltversion der Runtime oder eine sehr sehr exotische Distribution vorliegen, damit das nicht mehr funktioniert.
-
SeppJ schrieb:
Das ist theoretisches Herbeireden eines Problems wo in der Praxis gar keines ist. Du kannst wie gesagt die Runtime ruhigen Gewissens dynamisch linken. Die sind untereinander auch bei unterschiedlichen Versionen trotzdem sehr kompatibel, aufwärts wie abwärts.
das ist nicht theoretisch herbeigeredet sondern eigene Erfahrung.
Die ganzen libs ändern sich ständig. Im besten Fall startet das Programm gar nicht erst wegen undefined references. Im schlimmsten gibt die Funktion NULL zurück statt sonstwas.
Das ruhige Gewissen hast du erst wenn du's ausprobiert hast.
Dynamisch linken (gegen libs die man nicht mitliefert) ist also gefährlich. Und statisch linken... viel Spaß wenn du (womöglich closed source) Fremdlibs benötigst, die dlopen machen.
-
Man kann auch nachträglich linken damit wer das linker Problem behoben.
-
DrGreenthumb schrieb:
SeppJ schrieb:
Das ist theoretisches Herbeireden eines Problems wo in der Praxis gar keines ist. Du kannst wie gesagt die Runtime ruhigen Gewissens dynamisch linken. Die sind untereinander auch bei unterschiedlichen Versionen trotzdem sehr kompatibel, aufwärts wie abwärts.
das ist nicht theoretisch herbeigeredet sondern eigene Erfahrung.
Die ganzen libs ändern sich ständig. Im besten Fall startet das Programm gar nicht erst wegen undefined references. Im schlimmsten gibt die Funktion NULL zurück statt sonstwas.
Das ruhige Gewissen hast du erst wenn du's ausprobiert hast.
Dynamisch linken (gegen libs die man nicht mitliefert) ist also gefährlich. Und statisch linken... viel Spaß wenn du (womöglich closed source) Fremdlibs benötigst, die dlopen machen.
Und dafür gibt es Packetmanager, um dafür zu sorgen, dass bei der Installation alle benötigten Komponenten in der richtigen Version vorliegen.
Statisches Linken verursacht in der Regel mehr Probleme als es löst, und ist besonders in Hinblick auf Sicherheitsprobleme kaum tolerierbar. Es genügt dann nämlich nicht, einfach eine Komponente im System auszutauschen.
-
camper schrieb:
Und dafür gibt es Packetmanager, um dafür zu sorgen, dass bei der Installation alle benötigten Komponenten in der richtigen Version vorliegen.
-
besserwisser schrieb:
camper schrieb:
Und dafür gibt es Packetmanager, um dafür zu sorgen, dass bei der Installation alle benötigten Komponenten in der richtigen Version vorliegen.
Bitte Zutreffendes ankreuzen:
-
SeppJ schrieb:
besserwisser schrieb:
camper schrieb:
Und dafür gibt es Packetmanager, um dafür zu sorgen, dass bei der Installation alle benötigten Komponenten in der richtigen Version vorliegen.
Bitte Zutreffendes ankreuzen:
Wäre es eigentlich dann nicht Packagemanager?
-
besserwisser schrieb:
]Wäre es eigentlich dann nicht Packagemanager?
Ach, Mist. Touché.
-
Ich nehme an, das Thema ist als solches geklärt, wenn bloß noch über Orthografie gestritten wird?
-
SeppJ schrieb:
Du kannst wie gesagt die Runtime ruhigen Gewissens dynamisch linken. Die sind untereinander auch bei unterschiedlichen Versionen trotzdem sehr kompatibel, aufwärts wie abwärts. Es müsste schon eine Uraltversion der Runtime oder eine sehr sehr exotische Distribution vorliegen, damit das nicht mehr funktioniert.
Das halte ich für ein Gerücht.
Bei der g++ Lib (libstdc++.so.6) reicht schon eine leicht geringere Versionsnummer zwischen Compile- und Laufzeitumgebung aus, um inkompatibel zu werden:
libstdc++.so.6 version glibcxx_3.4.9' not found
http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
Passiert natürlich meist in Umgebungen, in denen man eben nicht schnell mal was Passendes nachinstallieren kann/darf.
Bleibt meist nur LD_LIBRARY_PATH, von unbedenklicher Kompatibilität kann keine Rede mehr sein.
-
Bin ich denn der einzige, bei dem das bisher immer tadellos funktioniert? Hat eigentlich irgendjemand außer mir mal praktische Erfahrungen gemacht? Vielleicht bin ich ja ein echtes Glückskind, was Versionsnummern angeht, aber ich mag das nicht so recht glauben. Daher bin ich etwas überrascht, wegen der vielen gegenteiligen Links in diesem Thread. Aber ich weiß auch, dass so etwas im Internet immer überproportional repräsentiert wird, da natürlich niemand Artikel da drüber schreibt, wie wunderbar alles funktioniert. Meistens fällt es ja noch nicht einmal auf, dass da überhaupt eine Schwierigkeit gewesen wäre.
-
SeppJ_logout schrieb:
Bin ich denn der einzige, bei dem das bisher immer tadellos funktioniert? Hat eigentlich irgendjemand außer mir mal praktische Erfahrungen gemacht?
habe ja schon geschrieben, dass das eigene Erfahrung ist. Da gehts dann mal unter unter Suse 10.2 und unter 10.3 gibts kuriose Abstürze. Oder auch das von Wutz genannte.
Das es oft gut geht, sieht man ja auch an Programmen wie firefox. Aber auch die haben regelmäßig immer mal wieder eins der genannten Probleme.