Si construyo un paquete desde la fuente, ¿cómo puedo desinstalarlo o eliminarlo por completo?

119

Utilicé el código fuente para compilar un paquete como el siguiente:

./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

Desafortunadamente, descubrí que es la última versión y tiene muchos errores, por lo que necesito eliminarla / desinstalarla. ¿Pero cómo puedo hacerlo? Intenté make clean; make uninstall pero todavía veo que existe:

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

¿Cómo eliminas esto ahora?

    
pregunta YumYumYum 12.12.2011 - 12:42

6 respuestas

150

Usualmente puedes usar:

make uninstall

o

sudo make uninstall

si la aplicación se instaló como raíz.

Pero esto solo funcionará si el desarrollador del paquete se ha encargado de hacer una buena regla de desinstalación.

También puede intentar ver los pasos utilizados para instalar el software ejecutando:

make -n install

Y luego intente revertir esos pasos manualmente.

En el futuro, para evitar ese tipo de problemas, intente utilizar checkinstall en lugar de make install siempre que sea posible ( AFAIK siempre, a menos que desee mantener tanto la versión compilada como la versión empaquetada al mismo tiempo). Creará e instalará un archivo deb que luego podrá desinstalar utilizando su administrador de paquetes favorito.

make clean generalmente limpia los directorios de construcción, no desinstala el paquete. Se usa cuando quieres estar seguro de que todo está compilado, no solo los archivos modificados.

    
respondido por el Javier Rivera 12.12.2011 - 12:49
26

No creo que esto sea un error, sería una buena idea leer y aprender a usar la instalación de verificación al instalar desde el origen.

puede instalar checkinstall desde los repositorios, una breve descripción del paquete;

CheckInstall realiza un seguimiento de todos los archivos creados o modificado por su script de instalación ("make install") "make install_modules", "setup", etc.), construye un paquete binario estándar y lo instala en su sistema que le da la posibilidad de desinstalarlo con su utilidades de administración de paquetes estándar de distribución.

Estos enlaces a continuación pueden ser útiles para obtener una mejor comprensión. enlace

enlace

    
respondido por el Sabacon 20.01.2011 - 23:36
15

Esto no es un error: la compilación desde el origen es un método no compatible de instalación de software que elude por completo el sistema de administración de paquetes (que es utilizado por el Centro de software).

No existe una forma estándar de que el software compilado desde la fuente se instale o desinstale, por lo que Ubuntu no puede saber qué hacer. El software ni siquiera está listado como un programa instalado.

Debe seguir las instrucciones del distribuidor para la instalación y eliminación de dicho software personalizado. También puede contactar al desarrollador para pedirle que cree un paquete Debian para que se pueda usar el sistema de administración de paquetes.

    
respondido por el dv3500ea 20.01.2011 - 23:38
3

No es un error, es lo que sucede cuando los desarrolladores recurren a la distribución a través de la fuente y no a través de los métodos de empaque nativos.

Puede hacer que sus archivos fuente se conviertan en paquetes debian utilizando checkinstall o dhbuild. Honestamente, en mi opinión, los nuevos usuarios deben evitar la instalación desde el origen, y los desarrolladores deben evitar la distribución por fuente únicamente.

    
respondido por el RolandiXor 20.01.2011 - 23:36
0

Necesitamos negociar el hecho de que make uninstall funcionaría no , por lo que a continuación es más una solución proactiva.

 Esto implica el uso del programa paco que está disponible en el Centro de Software de Ubuntu. Una vez que hemos instalado paco, podemos usarlo en el modo de registro cuando "hacemos instalar" un programa. Paco actúa como un contenedor para su "instalación" y crea un registro en el directorio / var / log / paco con la lista de archivos copiados en varios directorios. Además, se podían ver los archivos en el front-end de Paco.

Por ejemplo, cuando compilé php desde la fuente, hice lo siguiente:

paco -lp php5 "make install"

El parámetro l hace que el paco se ejecute en el modo de registro. Esto creó un archivo de registro en / var / log / paco llamado php5 (el nombre que he dado en el comando). Contenía todos los archivos que se copian en varias ubicaciones estándar durante la instalación. Puede usar un editor de línea de comando o paco gui para ver los archivos.

A continuación se muestra el ejemplo de cómo obtener la lista de archivos usando el editor de línea de comandos sed
(Reemplace php5 con su nombre de archivo).

cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p'

Una vez que tienes la lista de los archivos, sabes cómo eliminarlos, ¿no? De hecho, podría pasar los resultados del comando anterior a rm utilizando palos de retroceso como se muestra a continuación:

sudo rm 'cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p''

¡Trabajo hecho!

Nota: Debido a las limitaciones de LD_PRELOAD, paco no puede seguir el rastro de los programas suid. Ver la página man.

    
respondido por el sjsam 09.03.2015 - 13:56
0

Había compilado php-5.6.30 desde la fuente sin configurarlo con openssl, así que tuve que volver e instalarlo desde cero. Usar make uninstall no lo hizo funciona como el Makefile para php no lo admite.

Sin embargo, este paso funcionó para mí, - enumeré todos los archivos relacionados con php y los eliminé manualmente, me tomó aproximadamente 5 minutos sin sudar nada. De manera similar, puede utilizar estos pasos para desinstalar su software compilado.

Reemplace php con el software que necesita para desinstalar

whereis php

El comando anterior enumera los directorios donde están instalados los binarios, por ejemplo: / usr / local / bin / php, / usr / bin / php .. elimine cada archivo / directorio listado en su salida.

sudo rm -f /usr/local/bin/php

Haga esto con todos los archivos enumerados en el resultado anterior y está listo para instalar la versión más nueva desde cero.

    
respondido por el Abhinay 03.04.2018 - 21:25

Lea otras preguntas en las etiquetas