PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux-Verständnisfrage: Warum braucht ein Programm teilweise 150 MB an Libs?


Gast
2007-07-03, 19:21:27
Hallo,
einige Programme benötigen ja einen wahren Rattenschwanz an Libs!
So benötigt KGET scheinbar über 100MB an neuen Libs in einer XFCE Umgebung!!

Warum ist das bei Linux so? Habe bisher unter Windows gearbeitet und hier hatte kein Downloadmanage 100MB an Libs nötig!

Gast
2007-07-03, 19:35:09
Das liegt einfach daran, dass Windows praktisch alle Bibliotheken bereits integriert hat. Deshalb verschlingt selbst das einfachste installierte Windows bereits mehrere Gigabyte an Festplattenplatz, obwohl die meisten Benutzer viele der Bibliotheken nie brauchen.

Linux verfolgt hier eine andere Strategie. Es werden nur die Bibliotheken installiert, die man auch benötigt. Ein hinzugekommenes Programm kann so durchaus eine große Anzahl an Dateien benötigen.

Das ist aber kein Fehler sondern "by design". Denn abgesehen vom schlankeren System, können natürlich auch unnötige Bibliotheken Fehler und somit Sicherheitslücken enthalten.

nggalai
2007-07-03, 19:37:16
KGet ist ein Programm für die KDE-Umgebung. Also will es auch die ganzen KDE-Libs haben. Wenn Du XFCE verwendest, such Dir lieber eine Alternative, die auch zu Deiner Umgebung paßt.

Gast
2007-07-03, 19:38:27
@Gastantwort

Nur wie kann ich dann z.B. Kget mal eben schnell per USB auf einem anderen System starten (ohne jetzt gleich die 100mb libs zu installen, vllt hab ich garkeine rechte dazu...)?

Gast
2007-07-03, 19:39:55
KGet ist ein Programm für die KDE-Umgebung. Also will es auch die ganzen KDE-Libs haben. Wenn Du XFCE verwendest, such Dir lieber eine Alternative, die auch zu Deiner Umgebung paßt.

Nur leider wollen die Progs alle irgendwelche libs, und vor allem in verzeichnissen

Wie kann ich Firefox auf einem USB Stick transportieren auf einen anderen Linux rechner und ihn dort starten, ohne dort irgendwelche libs zu installieren?
Die mit ldd ermittelten Libs mit ins Verzeichnis kopieren bringt nichts

Lokadamus
2007-07-03, 19:43:26
@Gastantwort

Nur wie kann ich dann z.B. Kget mal eben schnell per USB auf einem anderen System starten (ohne jetzt gleich die 100mb libs zu installen, vllt hab ich garkeine rechte dazu...)?mmm...

Das ist so ähnlich wie die Frage, warum Spiel XYZ auch nach einer Neuinstallation von Windows von einer anderen Partition ohne Probleme startet, während andere Anwendungen auf die Registryeinträge bestehen und nicht starten können.

nggalai hat doch schon gesagt, dass kget zu KDE gehört und jeder gute Paketmanager knüppelt erstmal KDE als Abhängigkeit rein.

Gast
2007-07-03, 19:48:12
mmm...

Das ist so ähnlich wie die Frage, warum Spiel XYZ auch nach einer Neuinstallation von Windows von einer anderen Partition ohne Probleme startet, während andere Anwendungen auf die Registryeinträge bestehen und nicht starten können.

nggalai hat doch schon gesagt, dass kget zu KDE gehört und jeder gute Paketmanager knüppelt erstmal KDE als Abhängigkeit rein.

Naja, das Problem ist halt das sowas:
http://portableapps.com/

unter Linux scheinbar garnicht möglich ist....nur per Wine!
und Wine hat doch gradmal 50MB...trotzdem laufen hier (fast - ja ok etwas übertrieben) alle WIndows Anwendungen drauf

warum gibts bei Linux hunderte MBs und unter Windows scheinbar nicht?

Gast
2007-07-03, 19:51:05
warum gibts bei Linux hunderte MBs und unter Windows scheinbar nicht?Wie schon gesagt, bei Windows sind die 2 Gigabyte Bibliotheken bereits mitinstalliert, ob du sie brauchst oder nicht. Wenn du ein anderes Linuxsystem hast, bei dem die Bibliotheken bereits vorhanden sind, dann passt die Anwendung natürlich auch auf einen USB-Stick. Aber wie auch schon gesagt, das ist Absicht.

Gast
2007-07-03, 19:53:52
Wie schon gesagt, bei Windows sind die 2 Gigabyte Bibliotheken bereits mitinstalliert, ob du sie brauchst oder nicht. Wenn du ein anderes Linuxsystem hast, bei dem die Bibliotheken bereits vorhanden sind, dann passt die Anwendung natürlich auch auf einen USB-Stick. Aber wie auch schon gesagt, das ist Absicht.

Das kann aber garnicht sein. Denn mit dem 50MB Wine-Packet kann ich ja bereits einen Löwenanteil von Windows Anwendungen ausführen.

Also gibt es unter Windows nicht 2GB, sondern vllt 50-100MB an Libs!

Gast
2007-07-03, 20:22:37
Das kann aber garnicht sein. Denn mit dem 50MB Wine-Packet kann ich ja bereits einen Löwenanteil von Windows Anwendungen ausführen.

Also gibt es unter Windows nicht 2GB, sondern vllt 50-100MB an Libs!Ähm, nein. Das ist ein Irrtum. Wine enthält lediglich Bibliotheken, die die Windowsaufrufe in Linuxbibliotheken umsetzen (sonst wäre ja Wine auch ein eigenständiges Windows und bräuchte Linux ja gar nicht ;) ). Alleine die .NET Framework 2.0-Bibliothek braucht unter Windows bereits 280MB Speicherplatz. Und das ist nur eine von vielen vielen Bibliotheken.

Gast
2007-07-03, 20:37:04
Ähm, nein. Das ist ein Irrtum. Wine enthält lediglich Bibliotheken, die die Windowsaufrufe in Linuxbibliotheken umsetzen (sonst wäre ja Wine auch ein eigenständiges Windows und bräuchte Linux ja gar nicht ;) ). Alleine die .NET Framework 2.0-Bibliothek braucht unter Windows bereits 280MB Speicherplatz. Und das ist nur eine von vielen vielen Bibliotheken.

Das halte ich für Unsinn. Welche Linuxbibliotken sollten denn gemeint sein?

GTK? GIMP? KDELIBS? Die hab ich auf meiner Test-Installation NICHT drauf...
Höchstens ein paar MB an ganz rudimentären Funktionen.

Da ist nur ein Debian netinstall drauf ohne alles....dazu kam ein "apt-get install xorg" und "apt-get install fluxbux"... Mehr ist nicht drauf....

und trotzdem rennt wine!

Gast
2007-07-03, 20:43:16
und trotzdem rennt wine!Natürlich rennt Wine. Installier mal Microsoft Office 2007. Oder läuft unter Wine nicht einmal das aktuelle Windows-Officepaket? Verstehst du, was ich meine? Um das aktuelle Office zum Laufen zu bringen, müsstest du erst einmal 1 Gigabyte an Bibliotheken installieren. Ganz abgesehen davon, dass seit Office 2000(!) keins mehr halbwegs vernünftig lief.

Aber benutz doch einfach Windows. Dann hast du das Original. Keine Probleme mit Emulatoren und Bibliotheken. Die Welt kann so einfach sein.

Gast
2007-07-03, 20:50:55
Natürlich rennt Wine. Installier mal Microsoft Office 2007. Oder läuft unter Wine nicht einmal das aktuelle Windows-Officepaket? Verstehst du, was ich meine? Um das aktuelle Office zum Laufen zu bringen, müsstest du erst einmal 1 Gigabyte an Bibliotheken installieren. Ganz abgesehen davon, dass seit Office 2000(!) keins mehr halbwegs vernünftig lief.

Aber benutz doch einfach Windows. Dann hast du das Original. Keine Probleme mit Emulatoren und Bibliotheken. Die Welt kann so einfach sein.

Was redest du für einen Unsinn?
CrossoverOffice hat 20MB und hiermit kannst du Office installieren

Office selbst braucht nur Office-interne Blibliotheken..Mein FrontPage hat z.B. 20MB an Bibliotheken..die wohl auch nötig sind, irgendwo müssen die Funktionen ja untergebracht werden...hier braucht ja NVU z.B: auch nicht weniger

Gast
2007-07-03, 20:54:43
Was redest du für einen Unsinn?
CrossoverOffice hat 20MB und hiermit kannst du Office installierenKannst du mir dann bitte erklären, wie das geht. Also ich kriege nicht mal Access 2003 zum Laufen.

Gast
2007-07-03, 20:59:45
Kannst du mir dann bitte erklären, wie das geht. Also ich kriege nicht mal Access 2003 zum Laufen.

Mit CrossOverOffice läuft Office XP. Ob es 2003 auch tut, weiss ich nicht.
Aber darum geht es auch nicht, und es geht hier auch nicht darum, Win-Anwendungen unter Linux zu starten

Es geht hier um Libs und die Möglichkeit von portablen Anwendungen unter Linux. Unter Windows ist sogar ein fettes Ding wie OpenOffice portabel!

Gast
2007-07-03, 21:05:14
Es geht hier um Libs und die Möglichkeit von portablen Anwendungen unter Linux. Unter Windows ist sogar ein fettes Ding wie OpenOffice portabel!Vielleicht reden wir aneinander vorbei. Wenn du unter Linux ein portables System haben willst wie unter Windows, dann müssen selbstverständlich auf allen Systemen, genau wie unter Windows, auch alle Bibliotheken installiert sein. Jede Windowsinstallation hat alle Bibliotheken von Haus aus dabei. Deshalb kann man auch manche Anwendungen auf allen Windowsrechnern starten. Willst du dies auch unter Linux erreichen, muss du natürlich auch auf allen Systemen alle benötigten Bibliotheken bereitstellen. Sind sie nicht bereits installiert, musst du dies halt tun, indem du die Bibliotheken mitbringst. Eine andere Lösung unter Linux gibt es nicht. Aber wie bereits mehrfach gesagt, das ist Absicht.

Spearhead
2007-07-03, 21:14:11
Der Unterschied was die Bibliotheken angeht ist auch, das die Anwendungen unter Windows diese oft gleich mitliefern, in einer Version die sie halt brauchen.

Gibt grundsätzlich zwei Möglichkeiten, entweder durch die Installation wird die Version die Windows hat überschrieben/erneuert oder die Anwendung hat die in nem eigenen Verzeichnis.

Unter Linux ist das eben anders aufgebaut, dadurch das versucht wird möglichst viel Wiederverwendbarkeit reinzubringen werden die Bibliotheken separat installiert und von den weiteren Anwendungen global genutzt.
Hat halt Vor- und Nachteile, wie jede der Varianten.

Gast
2007-07-03, 22:03:02
Der Unterschied was die Bibliotheken angeht ist auch, das die Anwendungen unter Windows diese oft gleich mitliefern, in einer Version die sie halt brauchen.

Gibt grundsätzlich zwei Möglichkeiten, entweder durch die Installation wird die Version die Windows hat überschrieben/erneuert oder die Anwendung hat die in nem eigenen Verzeichnis.

Unter Linux ist das eben anders aufgebaut, dadurch das versucht wird möglichst viel Wiederverwendbarkeit reinzubringen werden die Bibliotheken separat installiert und von den weiteren Anwendungen global genutzt.
Hat halt Vor- und Nachteile, wie jede der Varianten.

Ich habe ja versucht, die Libs zu Firefox dazuzupacken.
Doch Firefox erwartet die Libs krankhaft neurotisch in /lib...wie kann ich das ändern, das er sie aus dem aktuellen Verzeichnis nimmt?

Spearhead
2007-07-03, 22:06:53
Hab mich damit bisher nicht beschäftigt... aber eine Vermutung von mir wäre:
kleines Skript schreiben das man statt der Binary startet in der die Variable vom lib-dir speziell für den Befehl umgestellt wird

Gast
2007-07-03, 22:07:54
in der die Variable vom lib-dir speziell für den Befehl umgestellt wird

du kennst nicht zufällig den aufruf dafür oder?

Spearhead
2007-07-03, 23:06:28
du kennst nicht zufällig den aufruf dafür oder?

nach kurzem googlen würde ich sagen mit folgendermaßen aufgebauter Zeile in der Skript-Datei:


LIB_DIR=/usr/lib/smail # common convention

Gast
2007-07-03, 23:13:30
nach kurzem googlen würde ich sagen mit folgendermaßen aufgebauter Zeile in der Skript-Datei:


LIB_DIR=/usr/lib/smail # common convention


Das ignoriert er mal ganz gelassen
Es kommt immernoch /lib/ld-linux.so.2: No such file or directory

Spearhead
2007-07-03, 23:21:17
hm... vielleicht noch ein "export" vor die Zeile hängen?

Gast
2007-07-03, 23:24:40
hm... vielleicht noch ein "export" vor die Zeile hängen?

Hilft leider auch nicht.

Spearhead
2007-07-03, 23:25:42
dann bin ich derzeit mit Hilfe am Ende, sorry, muß mich auch wieder um mein Prüfungsmaterial für morgen kümmern ^^

aber noch viel Erfolg und falls es klappt hier reinschreiben ;)

nino
2007-07-04, 00:46:51
so genau kenn ich mich jetzt damit auch nicht aus, aber wenn man das zeug im paketmanager installiert ist halt alles "dynamically linked", d.h. die bibliotheken werden zur laufzeit von irgendwo geladen. man kann aber auch fest linken, sodass die libs in die binary mit eingebunden werden oder so. ist ne frage der konfiguration des compilers... und bei windows hat halt die software ihre ganzen bibliotheken immer dabei, z.b. openAL bei spielen o.ä.. bei linux werden halt die libs nur einmal für alle anwendungen isntalliert.

Simon
2007-07-05, 10:10:36
Das ignoriert er mal ganz gelassen
Es kommt immernoch /lib/ld-linux.so.2: No such file or directory
LD_LIBRARY_PATH heißt die Variable. Standardwerte siehe /etc/ld.so.conf.d/*

Was du damit erreichen willst, ist mir allerdings völlig schleierhaft...ld-linux.so.2 hört sich so an, als wenn es wichtig wäre...

Monger
2007-07-05, 11:09:53
Windows hat halt sehr viele Abstraktionsschichten, die allen Anwendungen gemein sind.

Wenn wir z.B. mal Office nehmen, dann ist das Fenster und alle Buttons/Menüs etc. aus den Windows Standardkomponenten zusammengesetzt. Das sieht man auch ganz deutlich, dass sich das Design je nach Windows Version sehr stark unterscheidet, obwohl ja das selbe Programm installiert wird.
Darunter liegt die ganze Ebene mit Dateizugriffen, Peripherieverarbeitung etc.

In der Unix Welt unterscheiden sich die einzelnen Varianten selbst an der Basis teilweise sehr stark. Eine gemeinsam gepflegte Bibliothek gibt es kaum, oder sehr vereinzelt. Dementsprechend muss jedes Programm alles mitschleppen was von der aktuellen Distribution abweicht, und das ist mitunter eine Menge.

Ist alles eine Philosophiefrage. Windows geht in erster Linie mal davon aus, dass alle Windows Software sehr viel gemeinsam haben. Unix-Derivate gehen grundsätzlich mal davon aus, dass alles anders ist, und der Benutzer jede Komponente beliebig austauschen kann, was natürlich auf Kosten der Standardisierung geht.
Hat alles seine Vor- und Nachteile.

Simon
2007-07-05, 11:34:16
Windows hat halt sehr viele Abstraktionsschichten, die allen Anwendungen gemein sind.
Hat jede DE unter einem Linux/Unix auch...


In der Unix Welt unterscheiden sich die einzelnen Varianten selbst an der Basis teilweise sehr stark. Eine gemeinsam gepflegte Bibliothek gibt es kaum, oder sehr vereinzelt.
KDELibs, Boost, Glibc, Loki, SDL, GTK, X11, etc. Reichen die oder brauchst du mehr Beispiele?

Dementsprechend muss jedes Programm alles mitschleppen was von der aktuellen Distribution abweicht, und das ist mitunter eine Menge.
Häh?
Wenn ich ein Paket über den Paketmanager installiere, dann kommt da auch alles mit. Da muss das Programm überhaupt nix mitschleppen...


Unix-Derivate gehen grundsätzlich mal davon aus, dass alles anders ist,
Das wäre mir neu.

und der Benutzer jede Komponente beliebig austauschen kann, was natürlich auf Kosten der Standardisierung geht.
Äh, nein.
Es gibt sehr, sehr wenige Komponenten die sich "beliebig austauschen" lassen.

Wenn KGet KDELibs, QT, KDENetwork und X11-Libs braucht und die nicht installiert sind, werden die halt installiert. Was man da jetzt austauschen kann, weiß ich nicht. Wenn unter Windows das .Net-Framework fehlt, muss das auch erst installiert werden. Ist genau das gleiche :rolleyes:

Wenn dir die ganzen KDElibs zu groß sind, nimm halt wget oder ein anderes Frontend. Ist ja nicht so, dass es keine anderen gibt...

Holundermann
2007-07-05, 14:26:52
hmm, was willst du uns eigentlich sagen? das linux endlich alles so machen soll wie die grossen desktop systeme...? verstehst du nicht das linux von seiner modularität lebt?

die eingangsfrage wurde aber min. schon 3 mal beantwortet und sollte jetzt jedem klar sein...

Gast
2007-07-05, 16:14:32
hmm, was willst du uns eigentlich sagen? das linux endlich alles so machen soll wie die grossen desktop systeme...? verstehst du nicht das linux von seiner modularität lebt?

die eingangsfrage wurde aber min. schon 3 mal beantwortet und sollte jetzt jedem klar sein...

Es geht bloß darum, warum es unter Linux 30 GrafikLibs geht, die sich alle überschneiden, und die für normales Arbeiten eh alle auf dem Rechner sind

Warum nicht alle zusammentun, eine gemeinsame API entwickeln?

Simon
2007-07-05, 16:39:21
Warum nicht alle zusammentun, eine gemeinsame API entwickeln?
Gibt doch mehrere solcher Sachen? :|
Diese Diskussion gibts hier übrigens auch schon mehrfach...

Gast
2007-07-05, 17:13:19
Gibt doch mehrere solcher Sachen? :|
Diese Diskussion gibts hier übrigens auch schon mehrfach...

Ja, das ist das Problem: mehrere
Besser ist: EINE, wie unter Windows oder MacOS (Cocoa)

nggalai
2007-07-05, 17:17:36
MacOS hat auch mehrere … z. B. Cocoa, Carbon, QT, GTK … halt je nach Applikation. ;) Nur installieren z. B. QT-Applikationen meistens gleich alle QT-Libraries mit …

QT und GTK gibt’s übrigens auch für Windows …

Gast
2007-07-05, 17:20:23
MacOS hat auch mehrere … z. B. Cocoa, Carbon, QT, GTK … halt je nach Applikation. ;) Nur installieren z. B. QT-Applikationen meistens gleich alle QT-Libraries mit …

QT und GTK gibt’s übrigens auch für Windows …

Da liegt der Hund also begraben. Ja, das ist das was mich wundert:
Warum kümmern sich Windows und Mac Anwendungen darum, das das ganze ohne zutun des Benutzers läuft (auch bei shared-libs), und unter Linux kümmern sie sich Furz, und der Benutzer muss zu sehn, wo er seine Libs wegbekommt...

Warum ist das so? Ändert sich das jemals? Wäre Toll!

nggalai
2007-07-05, 17:24:38
Da liegt der Hund also begraben. Ja, das ist das was mich wundert:
Warum kümmern sich Windows und Mac Anwendungen darum, das das ganze ohne zutun des Benutzers läuft (auch bei shared-libs), und unter Linux kümmern sie sich Furz, und der Benutzer muss zu sehn, wo er seine Libs wegbekommt...

Warum ist das so? Ändert sich das jemals? Wäre Toll!
Viele Applikationen wie z. B. Opera kannst Du auch unter Linux „static linked“ runterladen bzw. installieren. Dann liegen die nötigen QT-Libraries auch bei.

Linux finde ich in der Hinsicht deutlich angenehmer und ordentlicher als Windows und MacOS. Wenn ich unter Windows drei QT-Applikationen installiere, habe ich meistens gleich 3x die ganze QT-Bibliotheken auf dem Rechner. Statt einfach nur einmal die aktuellste Version. Finde ich nicht sehr ordentlich, da geht Linux deutlich sauberer mit um. Dafür laufen halt Standalone-Applikationen z. B. aufm USB-Stick nicht, wenn man nicht eine static-linked Applikation drauf hat … außer, der Ziel-Linux-Rechner hat die Libraries auch drauf (was meistens der Fall ist).

Spearhead
2007-07-05, 17:33:30
Mir gefällt das auch besser so wenn die Lib einmal zentral drauf ist. Wenn dann z.b. eine neue Version raus ist von der Lib und die irgendwelche Verbesserungen oder Bugfixes hat, wirkt sich das praktischerweise global aus...

Wobei es bei GTK+ auch so ist das man unter Windows eine globale Installation hat, so wie ich das weiß, zumindest ist mir das mit Pidgin und X-Chat so aufgefallen.

Gast
2007-07-05, 17:41:44
Mir gefällt das auch besser so wenn die Lib einmal zentral drauf ist. Wenn dann z.b. eine neue Version raus ist von der Lib und die irgendwelche Verbesserungen oder Bugfixes hat, wirkt sich das praktischerweise global aus...

Wobei es bei GTK+ auch so ist das man unter Windows eine globale Installation hat, so wie ich das weiß, zumindest ist mir das mit Pidgin und X-Chat so aufgefallen.

Naja klar ist das schön, wenns zentral ist...
Aber könnten die Linux-Entwickler nicht auch ein Packet mit beilegen, welches die Libs enthält und dann eben nach /lib oder so kopiert...wie das X-Chat und so auch tut unter Windows?

Ajax
2007-07-05, 18:03:20
Hallo codinguser. Ich verweise mal auf die Forenregeln:
http://www.forum-3dcenter.org/vbulletin/faq.php?faq=forum_faq#faq_forum_faq_rules
Die "Hilfe-Foren" sind ausschließlich zur Hilfe für Problemfällen und jedweder in diesem Zusammenhang passenden Fragen da!
Weiterhin ist es Dir nicht gestattet als Gast während Deiner Sperre zu posten. Die Moderation ist berechtigt in dem Fall Deine Sperre wegen Missachtung der Moderation bzw. Umgehung der Regpflicht zu verlängern.