En courant
./configure --prefix=/mingw
sur un système MinGW / MSYS pour une bibliothèque que j'avais précédemment exécutée
'./configure --prefix=/mingw && make && make install'
Je suis tombé sur ce message:
AVERTISSEMENT: une version du SDK du plugin Vamp est déjà installée. Attendez-vous à des soucis et des chagrins si vous installez une nouvelle version sans supprimer l'ancienne au préalable. (Continue)
Cela m'inquiétait. Quel est le contraire de «make install», c'est-à-dire comment une bibliothèque est-elle désinstallée sous Linux? Est-ce que «nettoyer» fera le travail, ou y a-t-il d'autres étapes impliquées?
sudo make uninstall
si les fichiers de configuration d'installation sont toujours disponibles mais aucune autre solution évidente sinon, à part la désinstallation avec l'utilitaire de gestion de package système s'il est installé avec "checkinstall "utilité.make install
je n'ai jamais eu besoinmake uninstall
de les supprimer. J'ai toujours utiliséxargs rm < install_manifest.txt
Réponses:
make clean
supprime tous les fichiers intermédiaires ou de sortie de votre arbre source / build. Cependant, cela n'affecte que l'arborescence source / build; il ne touche pas le reste du système de fichiers et ne supprimera donc pas les logiciels précédemment installés.Si vous avez de la chance, courir
make uninstall
fonctionnera. C'est aux auteurs de la bibliothèque de fournir cela, cependant; certains auteurs fournissent uneuninstall
cible, d'autres non.Si vous n'êtes pas chanceux, vous devrez le désinstaller manuellement. L'exécution
make -n install
peut être utile, car elle montrera les étapes que le logiciel prendrait pour s'installer mais ne fera rien. Vous pouvez ensuite inverser manuellement ces étapes.la source
Si
sudo make uninstall
n'est pas disponible:Dans un système basé sur Debian, au lieu de (ou après *),
make install
vous pouvez exécutersudo checkinstall
pour créer un.deb
fichier qui sera automatiquement installé. Vous pouvez ensuite le supprimer à l'aide du gestionnaire de packages système (par exempleapt
/synaptic
/aptitude
/dpkg
). Checkinstall prend également en charge la création d'autres types de packages, par exemple RPM.Voir aussi http://community.linuxmint.com/tutorial/view/162 et une utilisation basique de checkinstall et un paquet debian checkinstall .
*: Si vous lisez ceci après avoir installé avec,
make install
vous pouvez toujours suivre les instructions ci-dessus et fairedpkg -r $PACKAGE_NAME_YOU_CHOSEN
ensuite.la source
make install
avant de l'utiliser à lacheckinstall
place.checkinstall
pour que cette excellente réponse fonctionne.checkinstall
et si la nouvelle compilation est faite avec les mêmes paramètres que l'ancien, désinstaller le package installé aveccheckinstall
devrait supprimer les fichiers précédemment installés.Si vous avez un
manifest
fichier qui répertorie tous les fichiers qui ont été installés avecmake install
vous pouvez exécuter cette commande que j'ai d'une autre réponse:Si vous en avez,
sudo make install
vous devrez ajouter un sudo à votre désinstallation:la source
xargs echo rm | sh
,? Il est assez évident que celui qui a suggéré cela n'est pas particulièrement expérimenté ou compétent dans l'utilisation du shell.install_manifest.txt
contient un astérisque ...rm *
sera canalisé dans un shell.) A voté pour cette raison.install_manifest.txt
peut exister?Selon la façon dont le makefile / configure script / autofoo magic du programme en question est le suivant, cela pourrait résoudre votre problème:
Le problème est que vous devez l'exécuter sur l'arborescence source de la version que vous avez installée et avec exactement la même configuration que celle utilisée pour l'installation.
la source
Comment désinstaller après "installer"
Méthode n ° 1 (faire la désinstallation)
Etape 1: Vous ne devez suivre cette étape si vous avez supprimé / modifié le répertoire de construction de quelque façon: Téléchargez et make / make install en utilisant la exacte même procédure que vous avez fait avant.
Étape 2: essayez de faire la désinstallation.
Si cela réussit, vous avez terminé. Si vous êtes paranoïaque, vous pouvez également essayer les étapes de la "Méthode # 3" pour vous assurer de
make uninstall
ne manquer aucun fichier.Méthode n ° 2 (checkinstall - uniquement pour les systèmes basés sur Debian)
Aperçu du processus
Dans les systèmes basés sur Debian (par exemple Ubuntu), vous pouvez créer un
.deb
paquet très facilement en utilisant un outil nommécheckinstall
. Vous installez ensuite le paquet .deb (cela fera réaliser à votre système Debian que toutes les parties de votre paquet ont bien été installées) et enfin le désinstallez pour permettre à votre gestionnaire de paquets de nettoyer correctement votre système.Pas à pas
À ce stade
checkinstall
, vous demandera un nom de package. Entrez quelque chose d'un peu descriptif et notez-le car vous allez l'utiliser dans une minute. Il vous demandera également quelques données supplémentaires que vous pouvez ignorer. S'il se plaint que la version n'est pas acceptable, entrez simplement quelque chose de raisonnable1.0
. Une fois terminé, vous pouvez installer et enfin désinstaller:Méthode n ° 3 (install_manifest.txt)
Si un fichier
install_manifest.txt
existe dans votre répertoire source, il doit contenir les noms de fichier de chaque fichier créé par l'installation.Vérifiez donc d'abord la liste des fichiers et leur heure de modification:
Vous ne devriez obtenir aucune erreur et les heures de modification des fichiers répertoriés doivent être égales ou supérieures à l'heure d'installation. Si tout est OK, vous pouvez les supprimer en une seule fois:
L'utilisateur Merlyn Morgan-Graham a cependant un avis sérieux concernant cette méthode que vous devez garder à l'esprit (copié ici textuellement): "Méfiez-vous des fichiers qui pourraient également avoir été installés par d'autres packages. La simple suppression de ces fichiers [...] pourrait casser les autres paquets. " . C'est la raison pour laquelle nous avons créé le
deleted-by-uninstall
répertoire et déplacé les fichiers au lieu de les supprimer.99% de ce poste existait dans d'autres réponses. Je viens de rassembler tout ce qui est utile dans un (espérons-le) facile à suivre et j'ai essayé d'accorder une attention supplémentaire aux détails importants (comme citer des arguments xarg et conserver des sauvegardes de fichiers supprimés).
la source
make clean
ne nettoie généralement que les fichiers construits dans le répertoire contenant le code source lui-même et touche rarement les logiciels installés.Les makefiles ne contiennent généralement pas de cible pour la désinstallation - vous devez généralement le faire vous-même, en supprimant les fichiers du répertoire dans lequel ils ont été installés. Par exemple, si vous avez construit un programme et installé ( à l' aide
make install
) dans/usr/local
, vous voudriez regarder à travers/usr/local/bin
,/usr/local/libexec
,/usr/local/share/man
, etc., et supprimer les fichiers indésirables. Parfois, un Makefile inclut uneuninstall
cible, mais pas toujours.Bien sûr, généralement sur un système Linux, vous installez un logiciel à l'aide d'un gestionnaire de packages , qui est capable de désinstaller le logiciel "automatiquement".
la source
L'utilitaire "stow" a été conçu pour résoudre ce problème: http://www.gnu.org/software/stow/
la source
stow
pour résoudre ce problème?Il n'y a malheureusement pas de standard, c'est l'un des périls de l'installation depuis la source. Certains Makefiles incluront une "désinstallation", donc
à partir du répertoire source peut fonctionner. Sinon, il peut s'agir d'annuler manuellement quoi que ce soit
make install
.make clean
nettoie généralement le répertoire source - en supprimant les fichiers générés / compilés et autres, probablement pas ce que vous recherchez.la source
Je connais quelques packages qui prennent en charge "make uninstall" mais beaucoup d'autres qui prennent en charge make install DESTDIR = xxx "pour les installations par étapes.
Vous pouvez l'utiliser pour créer un package que vous installez au lieu d'installer directement à partir de la source. Je n'ai pas eu de chance avec checkinstall mais fpm fonctionne très bien.
Cela peut également vous aider à supprimer un package précédemment installé à l'aide de make install . Vous forcez simplement l'installation de votre package intégré sur le make installé, puis le désinstallez.
Par exemple, je l'ai utilisé récemment pour gérer protobuf-3.3.0. Sur RHEL7:
Préférez yum à rpm si vous le pouvez.
Sur Debian9:
Préférez apt à dpkg où vous le pouvez.
J'ai également posté une réponse ici
la source
Make
peut vous dire ce qu'il sait et ce qu'il fera. Supposons que vous ayez une cible "install", qui exécute des commandes comme:Dans vos règles génériques, ajoutez:
Une astuce similaire peut faire un générique
make clean
.la source
Préambule
ci-dessous peut fonctionner ou non, tout est donné tel quel, vous et vous seul êtes la personne responsable en cas de dommages, de perte de données, etc. Mais j'espère que tout se passe bien!
Pour annuler,
make install
je ferais (et je l'ai fait) ceci:Idée: vérifiez les installations de script et annulez-les avec un simple script bash.
--prefix=$PWD/install
. Pour CMake, vous pouvez aller dans votre répertoire de construction, ouvrir CMakeCache.txt et corriger la valeur CMAKE_INSTALL_PREFIX.make install
nouveau).make install
script installe dans le répertoire personnalisé exactement le même contenu que vous souhaitez supprimer ailleurs (généralement/usr/local
). Nous avons donc besoin d'un script. 3.1. Le script doit comparer le répertoire personnalisé avec le répertoire à nettoyer. J'utilise ceci:anti-install.sh
3.2. Maintenant, exécutez simplement ce script (il fonctionnera à sec)
Par exemple, vous ne voulez pas nettoyer / usr / local, et votre répertoire d'installation personnalisé est /user/me/llvm.build/install, alors ce serait
3.3. Vérifiez soigneusement le journal, si les commandes vous conviennent, décommentez
rm $RM_DIR/$fn
et réexécutez-le. Mais arrêtez! Avez-vous vraiment vérifié attentivement? Peut-être vérifier à nouveau?Source aux instructions: https://dyatkovskiy.com/2019/11/26/anti-make-install/
Bonne chance!
la source