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
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.
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.
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.
- 1. Wie aktualisiert man die Quelle <img /> mit jQuery?
- 2. Wie aktualisiert man ein Paket in Linux, das aus der Quelle erstellt wurde?
- 3. Prototyp PeriodicExecutor aktualisiert die Quelle nicht
- 4. Wie man Datei aus Bash-Skript Quelle
- 5. CheckBox-Bindung aktualisiert die Quelle nicht
- 6. Wie aktualisiert man die Nullspalte?
- 7. Wie wird die Quelle von WPF ListView aktualisiert?
- 8. Wie man ein Listenfeld automatisch aktualisiert, wenn die Quelle (Liste) geändert wird
- 9. Wie ändert man die Quelle mit NAnt?
- 10. Wie testet man die JNI-Quelle?
- 11. Wie aktualisiert man UITableViewCell?
- 12. Wie aktualisiert man die jQuery Dropdown-Checkliste von der Serverseite?
- 13. Wie aktualisiert man ListViews HeaderView, wenn der Cursor aktualisiert wird?
- 14. Wie führe ich externe Programme aus?
- 15. Wie berechnet man kürzeste Pfade aus einer Quelle mit OSRM?
- 16. Wie aktualisiert man die Koordinaten des Markers?
- 17. Koala-Juwel: Wie aktualisiert man die Seiteninformationen?
- 18. Wie aktualisiert man die Tabelle in SQL?
- 19. Wie aktualisiert man die Daten von der searchResultsController (UISearchController)
- 20. Wie aktualisiert man die verschachtelten Daten der elastischen Suche?
- 21. Wie aktualisiert man die Höhe der Zelle mit UITableViewAutomaticDimension?
- 22. Wie aktualisiert man INFORMATION_SCHEMA.COLUMNS?
- 23. Wie aktualisiert man die Zieltabelle in ssis?
- 24. Combobox SelectedItem wird nicht aktualisiert, wenn sich die Quelle ändert
- 25. Wie aktualisiert man die Tagliste in vim?
- 26. CollectionViewSource Filter nicht aktualisiert, wenn die Quelle geändert wird
- 27. Übung 310. "Wie man Programme entwickelt"
- 28. wie man android 4.0.3 quelle
- 29. Axapta - wie man anstelle der Einfügung aktualisiert
- 30. Wie aktualisiere ich meine DataTable aus der HTML-Quelle
OOk danke. Also muss ich die Änderungen jedes Mal überprüfen, um zu entscheiden? – Fabiuz99
@ Fabiuz99 du machst es kompliziert; nur 'make install' neuere Version; Wenn Sie irgendwelche Probleme haben, 'make uninstall' und installieren Sie es neu. –
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