196 votes

Si je construis un package à partir de la source, comment puis-je le désinstaller ou le supprimer complètement?

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 que c'était la dernière version et qu'elle comportait de nombreux bugs, donc je dois la supprimer/désinstaller. Mais comment puis-je le faire? J'ai essayé make clean; make uninstall mais je le vois toujours existant:

# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....

Comment pouvez-vous le supprimer maintenant?

253voto

jhornnes Points 1211

Généralement vous pouvez simplement utiliser :

make uninstall

ou

sudo make uninstall

si l'application a été installée en tant que root.

Mais cela ne fonctionnera que si le développeur du package a pris soin de créer une bonne règle de désinstallation.

Vous pouvez également essayer de voir les étapes utilisées pour installer le logiciel en exécutant :

make -n install

Et ensuite essayer de reverser manuellement ces étapes.

A l'avenir pour éviter ce genre de problèmes, essayez d'utiliser checkinstall au lieu de make install autant que possible (à ma connaissance toujours sauf si vous voulez garder à la fois la version compilée et une version empaquetée en même temps). Cela créera et installera un fichier deb que vous pourrez ensuite désinstaller en utilisant votre gestionnaire de paquets préféré.

make clean nettoie généralement les répertoires de construction, il ne désinstalle pas le package. C'est utilisé lorsque vous voulez être sûr que tout a été compilé, pas seulement les fichiers modifiés.

31voto

Sabacon Points 36458

Je ne pense pas que ce soit un bug, ce serait une bonne idée de lire et d'apprendre à utiliser checkinstall lors de l'installation à partir de la source.

vous pouvez installer checkinstall à partir des dépôts, une brève description du package;

CheckInstall suit 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 dans votre système, vous permettant de le désinstaller avec vos utilitaires de gestion de packages standard de votre distribution.

Ces liens ci-dessous peuvent être utiles pour mieux comprendre. http://en.wikipedia.org/wiki/CheckInstall

http://checkinstall.izto.org/

18voto

Evan Points 1318

Ce n'est pas un bogue - compiler à partir de la source est une méthode non prise en charge pour installer des logiciels qui contourne complètement le système de gestion des paquets (utilisé par le Centre logiciel).

Il n'y a pas de méthode standard pour installer ou désinstaller des logiciels compilés à partir de la source, donc aucun moyen pour Ubuntu de savoir quoi faire. Le logiciel n'est même pas répertorié comme un programme installé.

Vous devriez suivre les instructions du distributeur pour l'installation et la suppression de ces logiciels personnalisés. Vous pourriez également contacter le développeur pour lui demander de créer un paquet Debian afin que le système de gestion des paquets puisse être utilisé.

7voto

TheAltruist Points 201

Make

Make est un programme utilisé pour compiler et installer des programmes à partir du code source. Ce n'est pas un gestionnaire de paquets, donc il ne garde pas trace des fichiers qu'il installe. Cela rend difficile la désinstallation des fichiers par la suite.

La commande make install copie le programme construit et les paquets dans le répertoire de la bibliothèque et les emplacements spécifiés à partir du fichier makefile. Ces emplacements peuvent varier en fonction de l'examen effectué par le script de configuration.

CheckInstall

CheckInstall est un programme utilisé pour installer ou désinstaller des programmes compilés à partir du code source. Il surveille et copie les fichiers installés à l'aide du programme make. Il installe également les fichiers à l'aide du gestionnaire de paquets, ce qui lui permet d'être désinstallé comme n'importe quel paquet régulier.

La commande checkinstall appelle la commande make install. Il surveille les fichiers installés et crée un package binaire à partir d'eux. Il installe également le package binaire avec le gestionnaire de paquets Linux.

Remplacez source_location.deb et name dans la capture d'écran par vos propres informations :

Capture d'écran

Exécutez les commandes suivantes dans le répertoire du package source :

  1. Installer CheckInstall

    sudo apt-get install checkinstall
  2. Exécuter le script de configuration

    ./configure
  3. Exécuter la commande Make

    make
  4. Exécuter CheckInstall

    sudo checkinstall
  5. Réinstaller le package

    sudo dpkg --install --force-overwrite source_location.deb
  6. Supprimer le package

    sudo apt remove name

Voici un article que j'ai écrit qui passe par tout le processus avec des explications.

4voto

Bernie Perez Points 5091

Il ne s'agit pas d'un bug, c'est ce qui se passe lorsque les développeurs ont recours à la distribution via les sources et non via les méthodes d'emballage natives.

Vous pouvez transformer vos fichiers source en paquets Debian en utilisant checkinstall ou dhbuild. Honnêtement, à mon avis - les nouveaux utilisateurs devraient éviter d'installer à partir des sources et les développeurs devraient éviter de distribuer uniquement par les sources.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X