Kann ich Software, die aus dem Quellcode installiert wurde, direkt aktualisieren?

14

Obwohl es fast ein Jahr her ist, dass ich mit Ubuntu angefangen habe, habe ich nicht versucht, Software von der Quelle zu installieren. Die Notwendigkeit dazu habe ich eigentlich nicht gefunden. Aber jetzt arbeite ich an einer Software, die sich im Release Candidate-Stadium in den Repositories befindet, aber der Quellcode der neuesten stabilen Version ist auf der Software-Homepage verfügbar.

Ich habe gelernt, dass die Installation aus dem Quellcode schwierig sein kann, wenn die Software viele Abhängigkeiten aufweist. Wenn ich das jedoch in Angriff nehme, kann ich mit der neuesten Version zufrieden sein. Aber ich frage mich immer wieder, ob sich eine solche Software automatisch selbst aktualisieren kann oder ob ich einige Skripte ausführen muss, um das Paket zu aktualisieren. Oder muss ich noch schlimmer jedes Update von Grund auf neu installieren?

Ich bin auch gespannt, ob die Installation von einer anderen Quelle als der oben genannten Vorteile hat.

Chethan S.
quelle
Related: askubuntu.com/questions/22510/…
Mechanische Schnecke

Antworten:

10

Es ist am besten zu beachten, dass sich die Abhängigkeiten einer Software selten ändern. Wenn Sie erfolgreich die Software einmal kompiliert haben, werden alle nachfolgenden Versionen sollten leicht zu kompilieren - alle Abhängigkeiten sollten bereits erfüllt werden.

Wenn Sie aus dem Quellcode kompiliert haben, gibt es kein .deboder ein ähnliches Paket, mit dem Sie aktualisieren könnten, es sei denn, Sie warten, bis die Distribution diese Software in ihre Repositorys aufgenommen hat, oder bis die PPA der Entwickler aktualisiert wurde.

Einfach ausgedrückt, jemand muss es zuerst kompilieren, um daraus eine Debatte zu machen. Wenn Sie eine alte Version kompilieren, können Sie diese nicht automatisch aktualisieren. Sie müssen jedoch den gesamten Vorgang "Herunterladen, Konfigurieren, Kompilieren, Installieren" ausführen.

Allerdings , wenn Sie die gleiche Version auf mehreren Computern installiert werden sollen, wäre es sinnvoll , die kompilierte Version als zu verpacken .deb(oder ähnlich) und auf diese Computer verteilen. Wenn das richtig gemacht wird, werden die Abhängigkeiten automatisch gezogen.

Was die Vorteile der Installation von der Quelle anbelangt, kann ich mir nur zwei vorstellen:

  • Sie erhalten Zugriff auf die neueste Version des Codes und haben die Wahl zwischen einer stabilen Version oder der neuesten Version (normalerweise als nächtliche Builds, neueste Version usw. bezeichnet).
  • Ubuntu / other-distribution möchte die Software möglicherweise nicht in ihre Repositorys aufnehmen. In diesem Fall bleiben Sie beim Quellcode oder den Paketen stecken, die von den Entwicklern oder der Community bereitgestellt wurden. Das heißt, Sie haben keine andere Wahl, als die Quellen zu verwenden.
evgeny
quelle
4
Selbst wenn Sie etwas für die Verwendung auf einem Computer selbst kompilieren, ist es immer nützlich, ein .deb-Paket selbst zu erstellen, da Sie so einen Überblick über die installierte Software an einem Ort behalten und die Deinstallation oder Aktualisierung auch für sich selbst einfacher gestalten können.
16.
4

Nach diesem Beitrag können Sie ein .deb-Paket generieren, nachdem Sie die Quellen kompiliert haben. Anstelle von "make install" können Sie dann von dem .deb-Paket installieren. Dies erleichtert die Aktualisierung (wenn es sich in einem Repository befand), da das Paket vom Paketmanager verwaltet wird, der die Aktualisierung verfolgt.

Wenn Sie ein Paket "some-package" aus Quellen erstellen und Abhängigkeiten bestehen, können Sie "apt-get build-dep some-package" versuchen, um automatisch alle Abhängigkeiten zu installieren, die Sie zum Kompilieren Ihres Pakets benötigen, ohne sie manuell zu verfolgen Abhängigkeit selbst. Auf diese Weise werden die Abhängigkeiten auch vom Paketmanager verwaltet und sollten auch automatisch aktualisiert werden.

M. Alaggan
quelle
3

Eine weitere Alternative für gitBenutzer ist erwähnenswert:

Sie können auch git pulleine frühere git cloneVersion verwenden, um Ihren Quellcode zu aktualisieren und Ihr Programm bei Bedarf neu zu kompilieren. (Sie können auch verwenden git, um den Überblick über die Dateien zu behalten. Die Antwort finden Sie hier .)

Wenn Sie ursprünglich git cloneden Quellcode erhalten haben, wie zum Beispiel in

git clone git://github.com/person/programname.git

Wenn Sie den Ordner nach dem Kompilieren und Installieren beibehalten haben, können Sie eine CD in den Ordner kopieren und ausführen git pull, um die neuesten Commits abzurufen. Entfernen Sie dann alle Build-Verzeichnisse, die Sie möglicherweise erstellt und / oder ausgeführt haben make clean(falls zutreffend), kompilieren Sie die Software erneut und installieren Sie sie mit checkinstall, wodurch auch ein Paket für Sie erstellt wird (obwohl es nicht für die Verteilung geeignet ist).

Wenn Sie jedoch bei der Entwicklung eines Programms behilflich sind und es nach jedem Tag erneut kompilieren müssen, git pullwürden Sie wahrscheinlich in den Basisordner installieren, da es nicht erforderlich wäre, /usr/local/jedes Mal in der Hierarchie zu installieren .

Wenn ich zum Beispiel ein Programm teste und so regelmäßig neu kompiliere, würde ich es in meinen Build-Ordner kopieren, nachdem ich die neuesten Commits mit git pullund ausgeführt habe (für dieses spezielle Programm):

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

und kompilieren Sie dann die zu testende Debug-Version.

Wenn Sie jedoch nur jeden Monat eine neue Version Ihres git-geklonten Programms kompilieren wollten (und es nicht testeten oder debuggten), würden Sie normalerweise in der /usr/local/Hierarchie mit installieren checkinstall.

Gemeinschaft
quelle