Wie deinstalliere ich git von der Quelle? [geschlossen]

21

Ich habe den Git mit diesem Artikel installiert . Jetzt möchte ich den Git deinstallieren. Wie es geht?

Mikhail
quelle
1
Haben Sie noch den Quellcode, den Sie heruntergeladen und make installmit dem Sie gearbeitet haben ?
Hennes
Ja, ich habe den Quellcode
Mikhail
Was ist die Ausgabe von 'make uninstall'? Nicht alle Makefiles haben diese Option, aber viele tun dies.
Hennes
1
make: *** Keine Regel, um das Ziel zu deinstallieren. Halt.
Mikhail
1
warum -1? erklären
Mikhail

Antworten:

15

Ich habe hier die Lösung gefunden .

AKTUALISIERT am 2.11.2012

Wenn Sie schlau genug waren und ein nicht standardmäßiges Präfix verwendet haben, als Sie Git so konfiguriert haben, dass es unter einer bestimmten Hierarchie wie unter / opt / git installiert wurde, löschen Sie diese Hierarchie einfach rekursiv.

Wenn nicht, dann könnten Sie so vorgehen:

1) Holen Sie sich das Quell-Tarball genau der Version, die Sie erstellt und installiert haben, und entpacken Sie es.

2) Konfigurieren Sie es genau wie bei der ursprünglichen Installation in Bezug auf die Installationspositionen (Präfix, Exec-Präfix usw.). angeblich solltest du einfach nichts außer Kraft setzen.

3) Erstellen Sie ein temporäres Verzeichnis, um die Installation durchzuführen: $ mkdir / var / tmp / git

4) Installieren Sie Git, indem Sie eine richtige DESTDIR-Variable übergeben: $ make DESTDIR = / var / tmp / git install Die Git-Hierarchie wird in diesem temporären Verzeichnis erstellt.

5) Entscheiden Sie anhand der erstellten Hierarchie, welche Dateien in der realen Hierarchie gelöscht werden sollen ("/" selbst).

Der letzte Schritt ist, wo "die Magie" passiert, damit es mehr Erklärung gibt. Zum Beispiel könnten Sie laufen

$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f

(als root) lösche die Dateien, die bei der ersten fehlerhaften Installation im root-Dateisystem installiert wurden. Die obige Kodierung verwendet die Hierarchie / var / tmp / git, um die Liste der gefundenen Dateien auszudrucken, ersetzt jedoch das Präfix "/ var / tmp / git" durch "/", sodass das Präfix "/ var / tmp / git" verwendet wird / usr / bin / git "in der Ausgabe wird als" / usr / bin / git "aufgelistet. Diese Liste wird verrohrt dann auf xargsder läuft rm auf den Dateinamen es in Packungen mit zehn liest (nur die Zahl der Anrufungen zu reduzieren , rmindem eine Größenordnung).

Führen Sie nach dem Umgang mit Dateien aus

$ find /var/tmp/git -type d -printf '/%P\n'

um die Liste der installierten Verzeichnisse zu überprüfen. Diese erfordern einen manuellen Ansatz. Sehen Sie sich also die generierte Liste an und rmdirüberlegen Sie, welche von ihnen Sie sicher von Ihrem System entfernen können (dies sind die Verzeichnisse wie "/ usr / libexec / git" oder so ähnlich; Sie möchten wahrscheinlich nichts löschen "/ usr / share / man / mann" oder etwas, auch wenn es leer ist).

PS Installieren Sie in Zukunft niemals etwas in einem System, indem Sie ausführen make install! Die meisten Makefiles unterstützen heutzutage kein "Deinstallations" -Ziel, da sie entweder zum Testen an einem privaten Arbeitsspeicherort installiert oder zum Erstellen eines Pakets (.rpm, .deb usw.) verwendet werden und der Paketmanager sich dann um die Bereinigung kümmert. Wenn Sie etwas installieren müssen, versuchen Sie, ein offizielles Paket zu finden, oder versuchen Sie, ein anderes offizielles Paket aus einer neueren Version Ihres Betriebssystems (falls verfügbar) zu portieren. Versuchen Sie als letzte Möglichkeit, das checkinstallTool zu verwenden, das versucht, ein Binärpaket aus Ihrem make installLauf zu erstellen . Das ist scheiße, aber immer noch besser als nackt make install.

Mikhail
quelle
Bitte erweitern Sie einige der dort gefundenen Details. Bit-rot passiert und wenn dies der Fall ist, wird diese Antwort unbrauchbar.
sysadmin1138
ok, ich habe meine Antwort aktualisiert
Mikhail
Respekt. es funktioniert
Dotslash
Zusammenfassung: ./configure. sudo make && sudo make DESTDIR=/var/tmp/git install. sudo find /var/tmp/git -type f -printf '/%P\n' | sudo xargs -n 10 rm -f
Vahid
3

Ich habe gerade 2691 Zeilen Makefile durchgesehen. Tatsächlich machen keine deinstallieren. Drat.

In diesem Fall besteht eine Problemumgehung darin, die make rpmOption zu verwenden. Installieren Sie die rpm (überschreiben Sie alle installierten Dateien, die mit den bereits installierten Dateien identisch sein sollten). Dann deinstalliere die rpm.

Erstellen Sie in allen zukünftigen Fällen ein Paket (RPM, yum, was auch immer). Dies erleichtert die Wartung erheblich.

Hennes
quelle
1
Mit Ausnahme von wird normalerweise make installein Präfix eingefügt, /usr/localwährend rpm / deb / your-package-here ./configuremit anderen Parametern ausgeführt wird, sodass die von ihnen installierten Dateien ein Präfix erhalten /usr.
ptman
Ich bin Neuling im CentOS. Welchen Befehl soll ich ausführen? Können Sie bitte mehr erklären
Mikhail
Ich habe den make rpmBefehl ausgeführt. Was soll ich als nächstes tun?
Mikhail
Beginnen Sie mit man rpmoder 'rpm --help. Es wird Ihnen wahrscheinlich sagen, zu verwenden rpm -i packagename.rpm. Bitten Sie am besten den Systemadministrator von umbrella-web, Ihnen zu helfen. Es gibt nur so viel, was wir aus der Ferne tun können.
Hennes