Alle Software sind Programme , die auch als Quellpakete bezeichnet werden . Also alle Quellpakete werden müssen gebaut ersten, die auf dem System ausgeführt werden .
Bei den Binärpaketen handelt es sich um Pakete , die bereits von jemandem mit allgemeinen Funktionen und Parametern aus dem Quellcode erstellt wurden, damit eine große Anzahl von Benutzern sie installieren und verwenden kann.
Binärpakete sind einfach zu installieren .
Aber möglicherweise nicht über alle Optionen aus dem Upstream - Paket.
Für die Installation aus dem Quellcode müssen Sie den Quellcode also selbst erstellen. Das heißt, Sie müssen sich selbst um die Abhängigkeiten kümmern. Außerdem müssen Sie alle Funktionen des Pakets kennen, damit Sie es entsprechend erstellen können.
Vorteile der Installation von der Quelle:
- Sie können die neueste Version installieren und immer auf dem neuesten Stand bleiben, egal ob es sich um einen Sicherheitspatch oder eine neue Funktion handelt.
- Ermöglicht das Reduzieren der Funktionen während der Installation, um Ihren Anforderungen zu entsprechen.
- Ebenso können Sie einige Funktionen hinzufügen, die möglicherweise nicht in der Binärdatei enthalten sind.
- Installieren Sie es an einem von Ihnen gewünschten Ort.
- Im Falle von Software geben Sie möglicherweise Ihre hardwarespezifischen Informationen für eine geeignete Installation an.
Kurz gesagt, die Installation aus dem Quellcode bietet Ihnen umfangreiche Anpassungsmöglichkeiten und ist gleichzeitig sehr aufwändig. Die Installation aus dem Binärcode ist einfacher, Sie können sie jedoch möglicherweise nicht nach Ihren Wünschen anpassen .
Update : Hinzufügen des Arguments zur Sicherheit in den Kommentaren unten. Ja, es stimmt, dass Sie bei der Installation von einer Binärdatei nicht die Integrität des Quellcodes haben. Aber dann kommt es darauf an, woher Sie die Binärdatei haben. Es gibt viele vertrauenswürdige Quellen, aus denen Sie die Binärdatei jedes neuen Projekts abrufen können. Das einzig Negative ist die Zeit . Es kann einige Zeit dauern, bis die Binärdatei der Updates oder sogar ein neues Projekt in unseren vertrauenswürdigen Repositorys angezeigt wird.
Und vor allem, was die Software-Sicherheit betrifft, möchte ich diese urkomische Seite bei Bell-Labs hervorheben, die Joe in den folgenden Kommentaren zur Verfügung gestellt hat.
Eine Quelldatei enthält den Originalcode, der vom Entwickler in der von ihm gewählten Sprache (C, C ++, Python usw.) geschrieben wurde, und ist generisch. Es ist nicht spezifisch für jede Distribution und in vielen Fällen für jedes Betriebssystem.
Ein Paket (z. B. RPM oder DEB) ist die ausführbare Binärdatei (oder das interpretierte Skript usw.), die für Ihre spezielle Distribution vorgefertigt wurde. Die Vorbereitung der Quelle für das Kompilieren (Hinzufügen aller erforderlichen Patches usw.), das eigentliche Kompilieren, das Erstellen distro-spezifischer Konfigurationsdateien, das Erstellen von Skripten vor und nach der Installation usw. werden vom Paketbetreuer für Sie erledigt.
Mit anderen Worten, die gesamte Eselarbeit wurde in einem Paket für Sie erledigt, wohingegen Sie sie selbst erledigen müssen, wenn Sie sich für die Installation von der Quelle entscheiden.
Es ist viel einfacher, ein Paket in fast allen Fällen zu verwenden:
Manchmal ist die gepackte Version jedoch eine alte Version oder, noch schlimmer, es gibt keine gepackte Version. In diesem Fall besteht Ihre einzige Möglichkeit darin, sich selbst zu kompilieren. In diesem Fall müssen Sie Folgendes berücksichtigen:
dev
Pakete. Möglicherweise gibt es viele davon.Wenn Sie bereit sind, zusätzlichen Aufwand zu betreiben, bietet das Kompilieren aus dem Quellcode möglicherweise die folgenden Vorteile:
Beachten Sie, dass die vorgefertigten Pakete einiger Distributionen ausführbare Binärdateien enthalten, die installiert und ausgeführt werden können (RPM und DEB sind Beispiele), während andere Distributionen Pakete enthalten, die den Kompilierungsprozess einfach automatisieren.
Gentoos
ebuilds
ist ein Beispiel dafür - das Paket enthält im Grunde Anweisungen für den Paketmanager, die beschreiben, wie die ausführbare Datei kompiliert und installiert wird. Dies hat viele Vorteile herkömmlicher Paketmanager (automatische Updates, Deinstallation usw.) und ermöglicht dem Benutzer dennoch, den Kompilierungsprozess nach seinem Geschmack zu optimieren.Arch Linux verfügt über ein Paketsystem, bei dem die Mainstream-Pakete binär sind und viele zusätzliche Pakete mithilfe von
PKGBUILD
Dateien auf dem System kompiliert werden.quelle
Neben den anderen Antworten möchte ich noch etwas hinzufügen:
Wenn Sie sich entscheiden, ein Programm selbst zu kompilieren, müssen Sie denken, dass Sie das Kompilieren nicht nur einmal ausführen müssen. Wahrscheinlich müssen Sie die Entwicklungsmailingliste der Anwendungen abonnieren, für die Sie sich entschieden haben, die neuen Versionen und insbesondere die Sicherheitsupdates zu kompilieren und auf dem neuesten Stand zu halten.
Jedes Mal, wenn die Anwendung aktualisiert wird, müssen Sie die neue Version neu kompilieren. Denken Sie also daran, dass Sie wöchentlich etwas Zeit sparen müssen.
Wenn Sie sich das nicht leisten können, ist es besser, den Paketbetreuer diesen Job für Sie erledigen zu lassen.
quelle
Aufbauend auf der Quelle können Sie die Architektur Ihrer Maschine genau festlegen. Neue CPUs verfügen über zusätzliche Anweisungen, die Compiler verstehen und die Leistung ein wenig beeinträchtigen. Pre-Build-Pakete verwenden normalerweise die archaischste CPU, die noch häufig verwendet wird.
Dies ist vor allem für projektkritische Anwendungen wichtig, bei denen die CPU sehr stark beansprucht wird, z. B. Werkzeuge für bioinformatische Pipelines oder geophysikalische Modellierungswerkzeuge. Solche Software läuft in einer sehr kontrollierten Umgebung, verfügt nicht über eine eigene Zugriffskontrolle, so dass Sicherheitslücken selten so dringend sind, dass sie innerhalb von Tagen oder Stunden gepatcht werden müssen. Fast nie muss es auf einem anderen Computer mit zunächst unbekannter Architektur ausgeführt werden.
Ja, ich wusste, Computer sind jetzt sehr, sehr schnell und alle Bemühungen oder Maßnahmen, die Sie ergreifen, sind sehr, sehr teuer, aber am dritten Tag des Sitzens und Wartens auf die Fertigstellung Ihres Programms (das ist die Situation, von der ich spreche) sind solche Wahrheiten Fange an, fragwürdig auszusehen.
Im Gegensatz dazu sollten Anwendungen wie Browser und dergleichen besser über das Maintainer-Repository (und nicht über einige heruntergeladene vorgefertigte Pakete) verwendet werden, da es sehr wichtig ist, sie auf dem neuesten Stand zu halten.
quelle
Ein Weg, um das Beste aus beiden Welten zu bekommen (aktuelle Software, einfache Installation / Deinstallation, Integration der meisten Optimierungen und Anpassungen der Distribution, Optimierung für lokale Anforderungen), während die Kosten (müssen selbst auf dem neuesten Stand bleiben, auf Fehler achten) und Last-Minute-Patches, folgen Sie der Entwicklung, Sie sind auf sich allein gestellt in Bezug auf Fehlerbehebungen und Inkompatibilitäten zwischen Versionen) können nicht (viel) gemindert werden, ist es, Ihre eigenen Pakete zu erstellen, beginnend mit den Quellpaketen aus Ihrer Distribution. Ja, es ist mehr Arbeit als nur das Bauen und Installieren.
quelle