Am Samstag, 7. September 2002 13:40 schrieb Soeren Anderson:
Wo das Thema gerade mal wieder aktuell ist, hab ich auch mal ne Frage ganz allgemein zum Installieren von Software. Unter Win kann ich praktisch jedes Programm installieren, ohne mich um irgendwelche Abhängigkeiten o.ä. zu kümmern. Alle Bibliotheken werden durch das Programm zur Verfügung gestellt. (Sind im Installerpaket enthalten)
Richtig, weshalb auch Programm Y ne dll von Programm X überschreibt, was gern mal dazu führt, dass Programm Y nicht mehr funktioniert, oder auch bei Deinstallation von Y dann X nicht mehr läuft, weil die dll mit gelöscht wird. Wenns lustig läuft werden bei solchen Installationen auch System-dlls "aktualisiert", was gern mal zu Instabilitäten führt. Um das halbwegs in den Griff zu kriegen hat MS ja "selbstheilende" Funktionen eingebaut, die rigoros alles nachinstallieren, was nicht mehr dem Original entspricht, was so nette Folgen hat, dass man unerwünschte Software nicht mehr los wird, wenn man will.
Unter Linux muss ich selbst dafür Sorge tragen, dass die entsprechenden Abhängigkeiten erfüllt sind. Warum?
Weil so das System konsistent gehalten werden kann, ohne den User zu entmündigen. Es mag zwar etwas komplizierter sein (bei SuSE eigenen Paketen sorgt ja yast dafür, dass entsprechend nachinstalliert wird), ist es mir aber allemal lieber, als die alternative.
Aber wäre es nicht eigentlich möglich die libs von denen ein Programm abhängig ist mit dem entsprechenden Programm mitzuliefern. Und dann wird während des configure-Vorganges einfach abgefragt.
Wäre sicher alles möglich. Probleme gibts dabei eventuell bei der Gesetzgebung (z.B. libdvdcss), unterschiedlichen Lizenzen (probleme z.B. beim Mitliefern von GhostScript).
Ist die lib vorhanden? Nein- installieren Ja- neuer oder älter neuere Version- nicht installieren ältere Version- ersetzen (Das könnte natürlich Probleme bringen, wenn noch andere Programme von der lib abhängig sind) Es geht mir um die grundsätzliche Frage. Das würde die ganze Sache doch theoretisch vereinfachen.
Deinstallier dann mal so ein Programm. Wird schwierig festzustellen, welche Lib denn nun bereits da waren und welche von anderer Seite installiert wird und noch schwieriger zu beurteilen, wer die lib noch benötigt. Wie man das in ein Paketmanagement integrieren könnte, ist mir auch nicht klar, immerhin müssten Abhängigkeiten wechseln, sobald eine lib ersetzt wird.
Was spricht dagegen, ausser das die Größe des downzuloadenden Programmes anwächst? Nach dem installieren wäre die Größe ja wieder gleich, weil nur installiert wird, was von Nöten ist.
Naja, siehe oben. Lösen könnte man das höchstens, wie es beim Mac oft gemacht wird. Alles was nicht vom System selbst kommt, wird mitgeliefert und in einem eigenen Ordner abgelegt (oder gleich statisch linken). Macht Updates allerdings nicht unbedingt einfacher. Wenn z.B. ne openssh lib nen Fehler hat, reicht es im Moment die eine openssh zu updaten und alle Programme die sie nutzen profitieren davon. Bringt jedes Programm sein eigenes mit, müssen alle Programme updated werden. -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ Manfred | http://www.knightsoft-net.de