Comment désinstaller git installé depuis la source? [fermé]


21

J'ai installé le git en utilisant cet article . Maintenant, je veux désinstaller le git. Comment faire?


1
Avez-vous toujours le code source que vous avez téléchargé et fait make installavec?
Hennes

Oui, j'ai le code source
Mikhail

Quelle est la sortie de «make uninstall»? Tous les Makefiles n'ont pas cette option, mais beaucoup l'ont.
Hennes

1
make: *** Aucune règle pour faire de la désinstallation de la cible. Arrêtez.
Mikhail

1
pourquoi -1? expliquer
Mikhail

Réponses:


15

J'ai trouvé la solution ici .

MISE À JOUR 2.11.2012

Si vous étiez assez intelligent et utilisiez un préfixe non standard lors de la configuration de Git pour qu'il soit installé sous une hiérarchie spécifique, comme sous / opt / git, supprimez simplement cette hiérarchie, de manière récursive.

Sinon, vous pouvez alors procéder comme suit:

1) Récupérez l'archive tar source de la version que vous avez créée et installée, décompressez.

2) Configurez-le exactement comme vous l'avez fait avec l'installation d'origine en ce qui concerne les emplacements d'installation (préfixe, préfixe d'exécution, etc.); soi-disant, vous ne devriez tout simplement pas passer outre.

3) Créez un répertoire temporaire pour effectuer l'installation, comme ceci: $ mkdir / var / tmp / git

4) Installez Git en passant une variable DESTDIR appropriée pour faire: $ make DESTDIR = / var / tmp / git install La hiérarchie Git finira par être créée sous ce répertoire temporaire.

5) Utilisez la hiérarchie créée pour décider quels fichiers supprimer sous la hiérarchie réelle ("/" lui-même).

La dernière étape est l'endroit où "la magie" se produit, donc elle porte plus d'explications. Par exemple, vous pouvez exécuter

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

(en tant que root) supprimez les fichiers installés par la première mauvaise installation dans le système de fichiers racine. L'encantation ci-dessus utilise la hiérarchie / var / tmp / git pour imprimer la liste des fichiers trouvés, mais elle y remplace le préfixe "/ var / tmp / git" par "/", de sorte que le "/ var / tmp / git / usr / bin / git "dans la sortie sera répertorié comme" / usr / bin / git ". Cette liste est ensuite dirigée vers xargslaquelle s'exécute rm les noms de fichiers lus par paquets de dix (juste pour réduire le nombre d'appels de rmun ordre de grandeur).

Après avoir traité les fichiers, exécutez

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

pour inspecter la liste des répertoires installés. Ceux-ci nécessitent une approche manuelle, il suffit donc de regarder la liste générée et de penser à ceux que vous pourriez en toute sécurité à rmdirpartir de votre système (ce seront les répertoires comme "/ usr / libexec / git" ou quelque chose comme ça; vous ne voudriez probablement pas supprimer "/ usr / share / man / mann" ou quelque chose même s'il est vide).

PS À l'avenir, n'installez jamais rien dans un système en exécutant make install! De nos jours, la plupart des makefiles ne prennent pas en charge la cible de «désinstallation» car ils sont habitués à l'installation dans un emplacement de travail privé pour les tests ou à la création d'un package (.rpm, .deb, etc.), puis le gestionnaire de packages se charge du nettoyage. Si vous devez installer quelque chose, essayez de trouver un package officiel ou essayez de rétroporter un autre package officiel à partir d'une version plus récente de votre système d'exploitation, si disponible. En dernier recours, essayez d'utiliser l' checkinstalloutil qui tente de créer un package binaire hors de votre make installexécution. Cela craint, mais toujours mieux que nu make install.


Veuillez développer certains des détails qui s'y trouvent. Le bit-rot se produit, et quand cela se produit, cette réponse devient inutile.
sysadmin1138

ok, j'ai mis à jour ma réponse
Mikhail

Le respect. ça marche
dotslash

Résumé: ./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

Je viens de parcourir 2691 lignes de Makefile. En effet, ne faites pas de désinstallation. Drat.

Dans ce cas, une solution de contournement pourrait être d'utiliser l' make rpmoption. Installez le rpm (en écrasant tous les fichiers installés, qui doivent être identiques aux fichiers déjà installés). Désinstallez ensuite le rpm.

Dans tous les cas futurs, créez un package (RPM, miam, peu importe). Cela rend l'entretien beaucoup plus facile.


1
Except make installmet généralement les choses en préfixe /usr/localtandis que le rpm / deb / votre-package-ici s'exécute ./configureavec différents paramètres afin que les fichiers qu'ils installent finissent avec le préfixe /usr.
ptman

Je suis débutant dans CentOS. Quelle commande dois-je exécuter? Pouvez-vous expliquer plus, s'il vous plaît
Mikhail

J'ai exécuté la make rpmcommande. Que dois-je faire la prochaine?
Mikhail

Commencez par man rpmou 'rpm --help. Il vous dira probablement de l'utiliser rpm -i packagename.rpm. Cependant, il peut être préférable de demander à l'administrateur système de parapluie-web de vous aider. Il n'y a que peu de choses que nous pouvons faire à distance.
Hennes
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.