S
JayJay schrieb:
Also, bin seite ein paar Tagen dabei mich in Linux einzuarbeiten. Nu hab ich ein paar Fragen....
1.) Warum muss ich unter Linux immer alles kompilieren und davor noch configurieren?
Kann es nicht einfach schon die ausführbare datei(en) sein?
2.) Der RPM übernimmst sozusagen den configure/make/make install prozess ?
So das wars erstmal
Über ein paar Antworten würde ich mich sehr freuen!
zu 1)
Muss man nicht immer. Es hängt von der Distribution ab, wie die Packete zu installieren sind, die meisten Distris haben rmps oder ähnliche Dinger, die bereits kompilierte Programm liefern.
Wenn man aber das Programm kompilieren will, weil man z.B. die neuste Version haben will oder bestimmte Features aktivieren/deaktivieren will oder weil man einfach mehr lernen will. Dann muss man zuerst konfigurieren, warum?
Die Sosurces sind nicht immer in ANSI C/C++ geschrieben und enthalten sehr oft (wenn nicht immer) OS-spezifischen Code. Linux != BSD != Windows, usw und das führt dazu, dass mancher Linux Code gar nicht auf BSD/Windows läuft oder überhaupt kompiliert wird und umgekehrt. Auch nicht jeder Computer, der den Code kompiliert, muss den selben Compiler benutzen. GCC ist in der Unix Welt quasi das Standard, aber nicht jeder benutzt GCC und die, die GCC benutzen, benutzen oft nicht die sselben Versionen, das kann auch dazu führen, dass neuere Versionen alten Code nicht mehr kompilieren, weil der alte Code z.b. keine Standards mehr entsprechen, während alte GCCs den selben Code einwandfrei kompilieren.
Man versucht auch eine Portierung zu erstellen, indem man die selben Sources für alle liefert. Aber wie du siehst, ist das nicht trivial, denn jedes System ist an sich einzigartig und das System des Programmiers muss nicht unbedingt gleich sein wie das System des Users, der kompiliert. Auch die Pfade, sprich, die Speicherorte der Programme & Sources muss nicht gleich sein.
Um diese Probleme umzugehen, hat man das configure Skript. Dieses Skript erkennt am jeweiligen System, ob die Mindestvoraussetzungen vorhanden sind, sprich configure überprüft, dass du überhaupt einen Compiler hast, übeprüft, dass dein Compiler auch den Code übersetzen kann, der im Programmcode benutzt wird, erkennt ob's GNU/Linux, BSD, Windows,usw. ist und setzt die verschiedene Falgs für diese Systeme, überprüft die Pfade der Compiler, damit `make` auch den Compiler benutzen kann, usw.
Aus diesem Grund konfiguriert man bevor man etwas kompiliert.
Zu 2)
In der Regel schon. RPM ist sowas wie ein ZIP Format, wo die kompilierte Sachen, konfigurationsdateien und sonstige Infomation des Packetes gespeichert ist.
Es gibt aber auch die RPMS, das sind RPM die nur die Sources eines Programmes hat, das heißt, nur die Sources werden auf die Platte gespeichert (meistens glaub ich auf /usr/src/RPM/RPMS oder so, ich weiß es nicht, weil ich keine RPM(S)s benutze) und der User kann anschließend selber kompilieren.