2016-06-18 8 views
1

erstellt wurden, können Sie mir sagen, wie Sie Programme aktualisieren, die mit "sudo make install" installiert wurden. Ich frage, ob ich das Programm deinstallieren und dann "./autogen.sh" "make" "sudo make install" wiederholen muss. Jemand sagt, dass ich das Programm entfernen und dann wieder nach git ziehen muss, andere sagen Sie, dass ich es einfach mit der aktualisierten Quelle neu installieren kann.Wie man Programme aktualisiert, die aus der Quelle

Antwort

1

Das hängt davon ab. Wenn es nur ein kleines Update ist, gehen Sie einfach zur Neukompilierung und make install.

Wenn Änderungen in den bereitgestellten Bibliotheken und/oder Header-Dateien vorgenommen wurden (z. B. wurden sie umbenannt), sollten Sie zuerst die Software deinstallieren, um unnötige Dateien auf Ihrem Dateisystem zu entfernen.

+0

OOk danke. Also muss ich die Änderungen jedes Mal überprüfen, um zu entscheiden? – Fabiuz99

+0

@ Fabiuz99 du machst es kompliziert; nur 'make install' neuere Version; Wenn Sie irgendwelche Probleme haben, 'make uninstall' und installieren Sie es neu. –

+0

Es ist, weil ich ein Skript verwende, um meine Programme zu aktualisieren, die mit git installiert sind, und ich nicht jetzt, wenn ich einfach mache, installiere oder entferne die Programme und installiere sie wieder. Aus Ihrer Antwort habe ich verstanden, dass die zweite Option besser ist – Fabiuz99

0

Es gibt (normalerweise) keine make uninstall.

Aus diesem Grund installiere ich solche Software immer in einem separaten Verzeichnis, benannt nach der Software und ihrer Versionsnummer. Zum Beispiel, wenn Sie GNU Make 4.1 von der Quelle installieren, werde ich es in ein Verzeichnis make-4.1 installieren.

Dann symlink alle relevanten Dateien in einen gemeinsamen Verzeichnisbaum, den ich in meinem $PATH, $MANPATH, usw., verwende. Ich benutze mein eigenes Skript, um das zu tun, aber das liegt nur daran, dass ich nichts über stow wusste, als ich es schrieb.

Dies ermöglicht mir mehrere Versionen nebeneinander zu installieren und wählen Sie die "aktuelle" durch Entfernen und Hinzufügen der betreffenden Symlinks mit meinem Skript. Ich kann Software einfach deinstallieren, indem ich den Verzeichnisbaum entferne.

Dies funktioniert auch für Software mit Abhängigkeiten, die ebenfalls auf diese Weise installiert werden müssen. Der schwierigste Teil besteht darin, zu entscheiden, ob eine Abhängigkeit versionsspezifisch gemacht werden soll oder nicht.

1

Es ist wirklich schwierig, ein Programm zu deinstallieren, das Sie selbst an einem Standardort installiert haben. Wenn Sie sehr glücklich sind, wird es ein uninstall oder deinstall Ziel für make sein, aber die meiste Zeit gibt es nicht. Es geht wahrscheinlich darum, die Dateien manuell zu durchsuchen und zu entfernen, es sei denn, Sie installieren die gleiche Version des Codes erneut neu und behalten irgendwie im Auge, wo die Dinge tatsächlich enden (was das "Nachjagen" nur marginal erleichtern würde).

In Zukunft können Sie erwählen, anders zu machen: meist Source-Distribution, die eine GNU configure Skript verwendet können Sie einen Präfix für die Installation angeben --prefix=path verwenden. Dadurch können Sie die Installation in einem separaten Unterverzeichnis vornehmen, das dann einfach zu löschen wäre.

Zum Beispiel lassen Sie uns sagen, ich bin ein fiktives Stück Software Installation genannt thepackage, Version 14.4:

$ ./configure --prefix=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

(I in der Regel einen Weg unter $HOME/local/stow verwenden)

Beachten Sie die stow da drin? Kein Zufall, dass es ein ordentliches Dienstprogramm gibt, das genau das nennt, available from the GNU people.

Nachdem Sie die Software wie oben installiert zu haben, unter .../stow/thepackage-14.4, es ist einfach eine Frage des

$ cd /usr/local/stow 
$ sudo stow -v thepackage-14.4 

Diese /usr/local mit symbolischen Links auffüllt, so dass beispielsweise jede ausführbare Datei in /usr/local/stow/thepackage-14.4/bin in /usr/local/bin zur Verfügung (usw.)

zu deinstallieren:

$ cd /usr/local/stow 
$ sudo stow -D -v thepackage-14.4 
$ sudo rm -rf thepackage-14.4 

Diese Sie selbst erlaubt mehrere Versionen einiger Software unter /usr/local/stow installiert haben. Um eine bestimmte Version zu "aktivieren", nur stow -D welche Version Sie auch verwenden und stow diejenige, die Sie testen möchten. Wenn die neue Version nicht Ihren Anforderungen entspricht, kehren Sie die Aktionen um.

Andere Build-Systeme können auch unter einem separaten Präfix installiert werden. Zum Beispiel, wie oben zu machen CMake installieren, verwenden

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

Sie auch stow mit Perl-Paketen verwenden können, und was sonst noch installiert in einem anpassbaren Pfad.

Verwandte Themen