J'ai utilisé le code source pour construire un paquet tel que ci-dessous:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install
Mais malheureusement, j’ai découvert qu’il s’agissait de la dernière version et qu’il comportait de nombreux bogues. Je dois donc le supprimer / le désinstaller. Mais comment puis-je le faire? J'ai essayé make clean; make uninstall
mais je vois quand même qu'il existe:
# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
Comment supprimez-vous cela maintenant?
la source
checkinstall
- cela fait évaporer tout ce problème.make install
été exécuté en tant que root (par exemple,sudo make install
), ce qui est généralement le cas, il est toujours nécessaire d'exécuter virtuelsudo make uninstall
pour supprimer le logiciel.make install
, vous pouvez toujours utilisercheckinstall
. Normalementcheckinstall
, tout ce qui a étémake install
créé sera écrasé . Après cela, juste utiliserdpkg -r <package.deb>
, et tout devrait être supprimé.Je ne pense pas qu'il s'agisse d'un bug, ce serait une bonne idée de lire et d'apprendre à utiliser checkinstall lors de l'installation à partir du source.
vous pouvez installer checkinstall à partir des référentiels, une brève description du paquet;
CheckInstall garde la trace de tous les fichiers créés ou modifiés par votre script d’installation ("make install" "make install_modules", "setup", etc), construit un paquet binaire standard et l’installe sur votre système en vous donnant la possibilité de le désinstaller avec les utilitaires standard de gestion de paquets de votre distribution.
Ces liens ci-dessous peuvent être utiles pour mieux comprendre. http://en.wikipedia.org/wiki/CheckInstall
http://checkinstall.izto.org/
la source
Ce n'est pas un bogue - la compilation à partir des sources est une méthode d'installation non prise en charge du logiciel qui contourne complètement le système de gestion des paquets (qui est utilisé par le Centre logiciel).
Il n’existe pas de méthode standard d’installation ou de désinstallation des logiciels compilés à partir des sources. Par conséquent, Ubuntu ne sait pas quoi faire. Le logiciel n'est même pas répertorié en tant que programme installé.
Vous devez suivre les instructions du distributeur pour l'installation et la suppression de ce logiciel personnalisé. Vous pouvez également contacter le développeur pour lui demander de créer un paquet Debian afin que le système de gestion de paquets puisse être utilisé.
la source
Ce n'est pas un bug, c'est ce qui arrive quand les développeurs ont recours à la distribution via le source et non via les méthodes de packaging natives.
Vous pouvez obtenir que vos fichiers sources deviennent des paquets Debian en utilisant checkinstall ou dhbuild. Honnêtement, à mon avis, les nouveaux utilisateurs devraient éviter d'installer à partir de la source et les développeurs devraient éviter de distribuer uniquement par la source.
la source
Je connais peu de paquets qui prennent en charge "make uninstall", mais beaucoup d’autres qui prennent en charge installent 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 paquet précédemment installé avec make install . Il vous suffit de forcer l’installation de votre paquetage sur celui de make installé, puis de le désinstaller.
Par exemple, j'ai utilisé cela récemment pour traiter de protobuf-3.3.0. Sur RHEL7:
Préférez miam à rpm si vous le pouvez.
Sur Debian9:
Préférez apt à dpkg où vous le pouvez.
J'ai aussi posté cette réponse sur stackoverflow
la source
Nous devons négocier le fait que la désinstallation ne fonctionne pas toujours. La solution ci-dessous est donc davantage une solution proactive.
Cela implique l'utilisation du programme paco disponible dans le centre logiciel Ubuntu. Une fois que nous avons installé paco, nous pouvons l’utiliser en mode log lorsque nous "faisons installer" un programme. Paco agit comme un wrapper pour votre "make install" et crée un journal dans le répertoire / var / log / paco avec la liste des fichiers copiés dans différents répertoires. De plus, vous pouviez voir les fichiers dans le Paco Front end.
Par exemple, quand j'ai compilé php à partir des sources, j'ai fait ce qui suit:
Le paramètre l permet d'exécuter paco en mode journal. Il a créé un fichier journal dans / var / log / paco nommé php5 (le nom que j'ai donné dans la commande). Il contenait tous les fichiers copiés dans divers emplacements standard lors de l’installation. Vous pouvez utiliser un éditeur de ligne de commande ou paco gui pour afficher les fichiers.
L'exemple ci-dessous
montre comment obtenir la liste de fichiers à l'aide de l'éditeur de ligne de commande sed (Remplacez php5 par votre nom de fichier).
Une fois que vous avez la liste des fichiers, vous savez comment les supprimer, n'est-ce pas? En effet, vous pouvez transmettre les résultats de la commande ci-dessus à rm en utilisant des backticks comme indiqué ci-dessous:
Travail accompli!
Remarque: en raison des limitations de LD_PRELOAD, paco ne peut pas suivre la trace des programmes suid. Voir la page de manuel.
la source
J'avais compilé php-5.6.30 à partir des sources sans le configurer avec openssl, je devais donc revenir en arrière et l'installer à partir de zéro. Utiliser make uninstall ne fonctionnait pas car le fichier Makefile pour php ne le supportait pas.
Cependant, cette étape a fonctionné pour moi, - j'ai énuméré tous les fichiers liés à php et les ai supprimés manuellement, cela m'a pris environ 5 minutes sans transpirer. Vous pouvez également utiliser ces étapes pour désinstaller votre logiciel compilé.
Remplacez php par le logiciel que vous devez désinstaller
whereis php
La commande ci-dessus répertorie les répertoires dans lesquels les fichiers binaires sont installés, par exemple: / usr / local / bin / php, / usr / bin / php .. supprime chaque fichier / répertoire répertorié dans votre sortie.
sudo rm -f /usr/local/bin/php
Faites cela avec tous les fichiers listés dans la sortie ci-dessus et vous êtes prêt à installer la nouvelle version à partir de zéro.
la source