Sollte ich Programme von einem Quell-Tarball (`.tar.gz`), vom Ubuntu Software Center oder von einem anderen Ort aus installieren?

29

Es gibt verschiedene Möglichkeiten, eine Anwendung in Ubuntu zu installieren:

  • Sie können einen Quell-Tarball (im Allgemeinen eine .tar.gzoder eine .tar.bz2Datei) herunterladen und manuell installieren. (Siehe Wie installiere ich eine .tar.gz (oder .tar.bz2) Datei? )

  • Sie können eine .debDatei herunterladen und manuell mithilfe von dpkgoder über das Software Center installieren .

  • Sie können die Anwendung im Ubuntu Software Center suchen und dort installieren oder aptmit den offiziellen Ubuntu-Repositorys verwenden.

  • Sie können ein PPA oder ein Repo eines Drittanbieters finden und von dort aus installieren.

Was sind die Vor- und Nachteile jeder Methode? Bitte erläutern Sie in Ihrer Antwort die Auswirkungen auf die Sicherheit, die Häufigkeit der Aktualisierungen und die Programmzuverlässigkeit der einzelnen Methoden.

Flimm
quelle
1
das sind viele fragen in einer. Es könnte etwas besser sein, eine konzentriertere Frage zu stellen. Standardmäßig wird das Ubuntu Software Center verwendet. Ein guter Vergleich / Kontrast wäre zwischen Teerbällen (.tar.gz) und dem apt-get + .deb-Ökosystem (einschließlich Befehlszeile und Ubuntu Software Center).
Warren P
Wenn vier separate Fragen gestellt werden, ist die Antwort für alle vier gleich: Installieren / Aktualisieren Sie lieber mit einem Paketmanager von Repos (Haupt- oder Drittanbieter). Wenn dies keine Option ist, können Sie sich mit den allgemeinen Vor- und Nachteilen dieses und jenes befassen. An diesem Punkt wird jedoch wahrscheinlich festgelegt, welche App verwendet wird und was Sie speziell damit tun möchten. (Ich installiere zB den Standard "java" aus dem öffentlichen Repo, aber als Entwickler installiere ich auch 5 verschiedene Versionen in / opt / java über tar.gz's).
Michael

Antworten:

33
  • Zuverlässigkeit:
    • Bei der Installation von einem Tarball versucht die Software möglicherweise, andere Software zu überschreiben. Build-Abhängigkeiten sind erforderlich und der Prozess weist eine hohe Fehlerrate auf. Wenn Sie Software installieren, von der Pakete in den Repositorys abhängen, wird diese Abhängigkeit dadurch nicht erfüllt, da sie nicht bei registriert ist dpkg, es sei denn, Sie checkinstallkonvertieren sie vorübergehend in ein Debian-Paket. Damit riskieren Sie einen Bruch dpkg. Auch wenn der Code Open Source ist, sollten Sie ihn von einer vertrauenswürdigen Site herunterladen, es sei denn, Sie stellen sicher, dass er nicht geändert wurde. Sie können mehrere Softwareversionen installieren, sofern unterschiedliche Verzeichnisse verwendet werden. Sie können dies im Makefile überschreiben.
    • Die Verwendung eines Debian-Pakets stellt sicher, dass Dateien nicht die anderer Programme überschreiben. Wenn Sie jedoch sudo dpkg -i file.debAbhängigkeiten verwenden, müssen diese zuerst installiert werden. Bei dieser Installation erhalten Sie keine Updates, es sei denn, das Paket befindet sich ebenfalls in den Repositorys. Dieses Paket erfüllt jedoch die Abhängigkeiten, die diese Software erfordern. Es wird höchstwahrscheinlich auch diesem Paket einen Menüeintrag geben oder zumindest Hilfeseiten registrieren. Debian-Pakete werden in der Regel mit Lintian getestet, wodurch sichergestellt wird, dass Pakete eine Reihe von Standards erfüllen oder übertreffen, die recht streng sein können. Dies hängt davon ab, ob bestimmte Dateien ausführbaren Code enthalten oder nicht. Mehrere Versionen desselben Pakets können nicht installiert werden. Ein schlecht gemachtes Paket kann nicht installiert, nicht entfernt oder sogar beschädigt werdenDies führt zu schwierigen Reparaturen, hektischen Suchen nach Backups oder sogar einer Neuinstallation, wenn das Problem schwerwiegend ist.
    • Verwenden aptist die beste Option, wenn dies möglich ist. Abhängigkeiten werden automatisch abgerufen und installiert, und Pakete werden mit zuverlässigen Build-Server-Konfigurationen im Launchpad erstellt, um Ausfälle zu minimieren. Pakete können durchsucht werden aptitudeoder andere solche Tools, und Updates werden einfach über den Update-Manager erleichtert. Da Abhängigkeiten auch von stammen apt, ist es wahrscheinlicher, dass das Paket ordnungsgemäß mit Abhängigkeiten interagiert. Pakete werden wie bei Debs über Lintian getestet, aber die Tests ergeben in Kombination mit hochstabilen Build-Servern noch stabilere Pakete. Da die Pakete Ubuntus Build-Server durchlaufen, werden sie höchstwahrscheinlich für die Integration mit dem Rest des Betriebssystems optimiert. Mehrere Versionen desselben Pakets können nichtinstalliert werden. Da die Build-Server von Ubuntu für PPAs verwendet werden, gibt es weniger Änderungen, die aptdurch die automatische Optimierung verursacht werden.
  • Aktualisierung:
    • Mit einem Tarball erhalten Sie keine Updates, es sei denn, das Programm hat eine eigene Prüfung für sie. In diesem Fall müssen Sie solche Updates manuell installieren, und sie werden nicht an einem einzigen Ort konsolidiert. Sie werden wahrscheinlich in der Lage sein, nächtlichen oder sogar aktuellen Quellcode in einem Tarball zu kompilieren und zu installieren. Wenn Sie aktuellen Code benötigen, kann dies hilfreich sein.
    • Mit debian werden Pakete nur aktualisiert, wenn Sie das Repository für sie haben. Entwickler werden höchstwahrscheinlich Debian-Pakete etwas hinter der neuesten Quelle erstellen, aber Betas werden oft mit Debs online gefunden.
    • Mit aptwerden Pakete sehr einfach aktualisiert. Updates werden an einem Ort, dem Update Manager, konsolidiert und automatisch oder halbautomatisch durchgeführt. Sofern Sie nicht mit einer Alpha- oder Beta-Version von Ubuntu arbeiten, werden Sie gut getestete Versionen verwenden, auch wenn diese eine oder zwei Versionen hinter der aktuellen Upstream-Quelle liegen. Sicherheitsupdates werden veröffentlicht, sobald sie leicht getestet wurden, um sicherzustellen, dass sie die Situation nicht noch verschlimmern. Dies bedeutet, dass Ihre Sicherheit durch zeitnahe Aktualisierungen geschützt wird. Diese Aktualisierungen werden jedoch überprüft, um Datenverlust zu vermeiden.
  • Sicherheit:
    • Tarballs sind in keiner Weise digital signiert. Sie können von böswilligen Dritten entstellt oder verändert werden. Selbst wenn Sie eine Hashsumme erstellen (Vermeiden Sie MD5), sollten Sie dem Eigentümer der Site und dem Autor des Pakets vertrauen, da diese SHA- oder MD5-Summen bereitstellen.
    • Debian-Pakete sind nicht signiert, dpkgerlauben es jedoch keinem Debian- Paket, die Dateien eines anderen zu überschreiben, so dass ein böswilliges Debian-Paket nicht durch Überschreiben zerstört initoder verfälscht bashwerden kann. Sie sollten immer der Website und dem Autor des Pakets vertrauen.
    • aptVerwendet signierte Schlüssel für Repositorys, sodass sie nicht entstellt werden können, ohne dass eine rote Fahne aufgeht. PPA-Uploads sind digital signiert, sodass Nicht-Besitzer des PPA keine beschädigten oder unsicheren Pakete erstellen können. Das Nichtüberschreiben für Dateien eines anderen Pakets wird ebenfalls erzwungen. Natürlich sollten Sie dem PPA- oder Repository-Besitzer vertrauen, da ungeprüfte Pakete mit schädlichem Code ausgeführt werden, sobald sie ausgeführt werden.
ζ--
quelle
1
Ich schlage vor, Sie fügen Integration hinzu. Ubuntu und Upstream-Debian-Paketmanager stellen sicher, dass Pakete an systemweiten Funktionen wie dem alternativen System teilnehmen (ich habe X-Programme, die eine Webseite öffnen können, die ich als Standard festlegen möchte) und so weiter. Eine manuelle Tarball-Installation funktioniert normalerweise nicht so.
Warren P
@WarrenP Das habe ich zwar hinzugefügt, aber es ist vielleicht nicht klar. Vielen Dank!
ζ--
"Wenn Sie Software installieren, von der Pakete in den Repositorys abhängen, wird diese Abhängigkeit dadurch nicht erfüllt, da sie nicht bei dpkg registriert ist ." im ersten Aufzählungspunkt soll Integration abdecken ?
1
@ vasa1 Dies betrifft Tarballs, da Apt und dpkg ihre Datenbanken und nicht das Dateisystem überprüfen, um festzustellen, ob ein Paket installiert ist. Sie können immer verwenden checkinstall, um das zu umgehen.
ζ--
19

Die kurze Antwort lautet, dass die Installation über das Ubuntu Software Center im Allgemeinen allen anderen Methoden vorzuziehen ist . Es kann jedoch vorkommen, dass Sie ein Programm von einem anderen Ort aus installieren möchten.


Installation von der Quelle:

  • Sicherheitsaspekte : Sie müssen den Autoren der Software und der Website, auf der der Download gehostet wird, vertrauen. Sie sollten auch überprüfen, ob der Download über HTTPS erfolgt. Andernfalls kann der Download von einem Drittanbieter geändert werden.

  • Aktualisierungshäufigkeit : Sie erhalten immer das Neueste und Beste! Die Aktualisierungen werden so oft durchgeführt, wie die ursprünglichen Autoren es wünschen. Sie müssen jedoch manuell nach Updates suchen.

  • Zuverlässigkeit : Es ist möglicherweise nicht so zuverlässig wie andere Methoden, da die Software weniger Tests unterzogen wurde und möglicherweise nicht einmal für Ubuntu, sondern nur für andere Linux-Distributionen, getestet wurde.

  • Einfache Installation und Deinstallation : Von allen Optionen die schwierigste. Selbst erfahrene Benutzer können diese Option vermeiden, weil sie native Debian-Pakete bevorzugen, die viel einfacher zu verwalten sind.

Installation aus einem .debPaket:

  • Sicherheitsaspekte : Entspricht der Installation von der Quelle.

  • Aktualisierungshäufigkeit : Entspricht der Installation von der Quelle.

  • Zuverlässigkeit : Etwas besser als die Installation von der Quelle. Wenn die Autoren ein .debPaket bereitgestellt haben , bedeutet dies, dass sie wahrscheinlich einige minimale Tests unter Debian oder Ubuntu durchgeführt haben.

  • Einfache Installation und Deinstallation : Sehr einfach. Einfach doppelklicken und auf "Installieren" klicken! Ebenso einfach zu deinstallieren.

Installation über das Ubuntu Software Center:

  • Sicherheitsaspekte : Sie müssen den Autoren der Software und den Ubuntu-Repo-Betreuern vertrauen. Im Großen und Ganzen ist dies eine bessere Sicherheit als die Installation direkt vom Quellcode, da das Programm zu einem gewissen Grad von Debian- und / oder Ubuntu-Betreuern überprüft wurde. Debian- und / oder Ubuntu-Betreuer können das Programm auch patchen, um Sicherheitslücken zu schließen, wenn das Programm Open Source ist.

  • Häufigkeit von Updates : Debian- und / oder Ubuntu-Betreuer wählen nur einige Versionen der Software aus. (Beispielsweise können sie nur stabile Updates auswählen.) Es gibt eine Verzögerung zwischen der Veröffentlichung eines Programms und seiner Aufnahme in die Debian- und / oder Ubuntu-Repos. Wenn Sie das Neueste und Beste wollen, ist dies nicht die beste Option. Wenn Sie stabile Updates benötigen, die überprüft wurden, ist dies eine gute Option. Updates werden automatisch über den Update Manager und vorgeschlagen apt-get.

  • Zuverlässigkeit : Viel besser als die Installation von der Quelle, da das Programm für Ubuntu überprüft und angepasst wurde.

  • Einfache Installation und Deinstallation : Sehr, sehr einfach.

Installation von einem PPA oder einem Drittanbieter-Repository:

  • Auswirkungen auf die Sicherheit : Sie müssen den Autoren der Software und demjenigen vertrauen, der die PPA verwaltet. Jeder kann eine PPA hosten, vertraue der PPA also nicht, nur weil sie auf Launchpad ist. Der Benutzer könnte faul gewesen sein und die Software überhaupt nicht überprüft haben.

  • Aktualisierungshäufigkeit : Abhängig von der PPA. Nach Updates zu suchen ist einfach.

  • Zuverlässigkeit : Häufig weniger zuverlässig als die Installation über das Ubuntu Software Center. PPAs gibt es für Programme, die noch nicht den Standards für das Ubuntu Software Center entsprechen, so dass praktisch eine geringere Zuverlässigkeit garantiert ist.

  • Einfache Installation und Deinstallation : Es ist nicht schwer zu erlernen und passt gut zur Paketverwaltung von Ubuntu.

Flimm
quelle
1
Der USC ist apt-getsowieso nur ein Frontend für . Lassen Sie uns dies nicht zu einer Debatte zwischen GUI und Befehlszeile machen. Wenn Sie der Meinung sind, dass die Wahl eine Diskussion wert ist, stellen Sie eine weitere Frage.
Flimm
2
@Flimm: Nicht ganz, USC kann auch das .deb-Paket installieren, daher ist es sinnvoller, USC als Frontend für apt-get und dpkg zu bezeichnen.
Lie Ryan
1
Ich sage nicht "Debatte", ich sage "Benutzer kommen hierher, um Klarheit zu erlangen, und diese Frage und diese Antwort scheinen die Sache nicht viel zu klären."
Warren P
1
@LieRyan: einverstanden.
Flimm
1
@WarrenP: Ich bin mir nicht einig, wofür Benutzer hierher kommen. Benutzer kommen hierher, um zu entscheiden, wo eine Anwendung heruntergeladen und installiert werden soll. Wenn dies aus der Frage nicht klar hervorgeht, können wir sie bearbeiten. Ich denke, die Frage ist klar, wenn Sie eine andere Frage haben, die für Benutzer nützlicher ist, erstellen Sie einen neuen Fragenbeitrag.
Flimm