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:
- Sie sind viel einfacher zu installieren
- Sie wurden speziell für die Verwendung mit Ihrer Distribution entwickelt
- Sie werden manchmal vom Paketbetreuer gepatcht, um distro-spezifische Fehler zu beheben
- Der Paketmanager deinstalliert sie
- Der Paketmanager verwaltet alle Abhängigkeiten für Sie
- Der Paketmanager kümmert sich um Updates
- Sie müssen keine Entwicklertools auf Ihrem System installieren (Compiler, Make usw.)
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:
- Sie müssen alle Entwicklertools auf Ihrem System installieren
- Sie sind dafür verantwortlich, nach einem Update zu suchen und es erneut zu kompilieren
- Sie müssen sicherstellen, dass alle Abhängigkeiten installiert sind, einschließlich der
dev
Pakete. Möglicherweise gibt es viele davon.
- Möglicherweise müssen Sie Probleme beheben, wenn dies auf Ihrer Distribution nicht wie erwartet funktioniert
Wenn Sie bereit sind, zusätzlichen Aufwand zu betreiben, bietet das Kompilieren aus dem Quellcode möglicherweise die folgenden Vorteile:
- Zugriff auf die neueste verfügbare Version
- Die Option, den Kompilierungsprozess für Leistung / Stabilität zu optimieren
- Vergnügen!
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.