it-swarm.com.de

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

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.

14
Chethan S.

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

Wenn Sie aus dem Quellcode kompiliert haben, gibt es kein .deb oder ähnliches Paket, das Sie zum Aktualisieren verwenden könnten. , sofern nicht Sie warten, bis die Distribution diese Software enthält ihre Repositorys, oder warten Sie, bis die PPA der Entwickler aktualisiert ist.

Einfach ausgedrückt, jemand muss es zuerst kompilieren, um daraus eine Debatte zu machen. Das Kompilieren einer alten Version würde Ihnen nicht die Möglichkeit geben, automatisch zu aktualisieren. Sie müssen dennoch den gesamten Prozess "Herunterladen, Konfigurieren, Kompilieren, Installieren" durchlaufen.

Jedoch Wenn Sie dieselbe Version auf mehreren Computern installieren möchten, ist es sinnvoll, Ihre kompilierte Version als .deb (oder ähnlich) zu packen und an zu verteilen diese Computer. Wenn es 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 Nightly Builds, neueste Version usw. bezeichnet).
  • Ubuntu/other-distribution möchte die Software möglicherweise nicht in ihre Repositories 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.
10
evgeny

Entsprechend post 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.

4
M. Alaggan

Eine weitere Alternative für git Benutzer ist erwähnenswert:

Sie können git pull auch nach einem früheren git clone verwenden, um Ihren Quellcode zu aktualisieren, und dann Ihr Programm bei Bedarf neu kompilieren. (Sie können auch git verwenden, um den Überblick über die Dateien zu behalten: siehe die Antwort hier .)

Wenn Sie ursprünglich git clone verwendet haben, um den Quellcode abzurufen, wie z. B. 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 git pull ausführen, um die neuesten Commits abzurufen. Entfernen Sie dann alle von Ihnen erstellten Erstellungsverzeichnisse und/oder führen Sie make clean (falls zutreffend) aus, kompilieren Sie die Software erneut und installieren Sie sie mit checkinstall, wodurch ebenfalls ein Paket für Sie erstellt wird (obwohl nicht geeignet für Verteilung).

Wenn Sie jedoch bei der Entwicklung eines Programms behilflich sind und nach jedem täglichen git pull eine Neukompilierung durchführen müssen, werden Sie wahrscheinlich im Basisordner installiert, da es nicht erforderlich wäre, jedes Mal in der /usr/local/ -Hierarchie zu installieren .

Wenn ich zum Beispiel ein Programm teste und so regelmäßig neu kompiliere, würde ich, nachdem ich die neuesten Commits mit git pull erhalten habe, in meinen Build-Ordner wechseln und ausführen (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 diese normalerweise mit checkinstall in der /usr/local/ -Hierarchie installieren.

3
user76204

Informationen zum Verwalten Ihrer Installationen aus dem Quellcode finden Sie in meiner Antwort hier: Wie aktualisiere ich Pakete, die aus dem Quellcode kompiliert wurden?

0