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?

Mikhail
la source
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.

Mikhail
la source
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.

Hennes
la source
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