program make comando makefile uninstall

makefile - comando - uninstall make install ubuntu



¿Qué es lo contrario de ''make install'', es decir, cómo desinstala una biblioteca en Linux? (8)

Cómo desinstalar después de "make install"

Método # 1 (hacer desinstalación)

Paso 1: solo tiene que seguir este paso si ha eliminado / alterado el directorio de compilación de alguna forma: descargue y haga / realice la instalación utilizando el mismo procedimiento exacto que antes.

Paso 2: intenta hacer desinstalación.

cd $SOURCE_DIR sudo make uninstall

Si esto tiene éxito, has terminado. Si está paranoico, también puede probar los pasos del "Método # 3" para asegurarse de que make uninstall no perdió ningún archivo.

Método # 2 (checkinstall - solo para sistemas basados ​​en Debian)

Resumen del proceso

En los sistemas basados ​​en Debian (por ejemplo, Ubuntu) puede crear un paquete .deb muy sencilla utilizando una herramienta llamada checkinstall . Luego, instala el paquete .deb (esto hará que su sistema Debian se dé cuenta de que todas las partes de su paquete ya se han instalado) y finalmente lo desinstala para permitir que el administrador de paquetes limpie adecuadamente su sistema.

Paso a paso

sudo apt -y install checkinstall cd $SOURCE_DIR sudo checkinstall

En este punto, checkinstall solicitará un nombre de paquete. Ingresa algo un poco descriptivo y anótalo porque lo usarás en un minuto. También solicitará algunos datos más que puede ignorar. Si se queja de que la versión no ha sido aceptable, simplemente ingrese algo razonable como 1.0 . Cuando se complete, puede instalar y finalmente desinstalar:

sudo dpkg -i $PACKAGE_NAME_YOU_ENTERED sudo dpkg -r $PACKAGE_NAME_YOU_ENTERED

Método # 3 (install_manifest.txt)

Si existe un archivo install_manifest.txt en su directorio de origen, debe contener los nombres de archivo de cada archivo que creó la instalación.

Así que primero revise la lista de archivos y su tiempo de modificación:

cd $SOURCE_DIR sudo xargs -I{} stat -c "%z %n" "{}" < install_manifest.txt

Debe obtener cero errores y los tiempos de modificación de los archivos enumerados deben estar en o después del tiempo de instalación. Si todo está bien, puedes borrarlos de una sola vez:

cd $SOURCE_DIR mkdir deleted-by-uninstall sudo xargs -I{} mv -t deleted-by-uninstall "{}" < install_manifest.txt

Sin embargo, el usuario Merlyn Morgan-Graham tiene un aviso serio con respecto a este método que debe tener en cuenta (copiado aquí literalmente): "Tenga cuidado con los archivos que también podrían haber sido instalados por otros paquetes. Simplemente eliminando estos archivos podría romper los otros paquetes ". . Esa es la razón por la que hemos creado el directorio deleted-by-uninstall y movido los archivos allí en lugar de eliminarlos.

El 99% de este post existió en otras respuestas. Acabo de recopilar todo lo útil en un manual práctico (con suerte) y traté de prestar atención adicional a los detalles importantes (como citar argumentos xarg y mantener copias de seguridad de archivos eliminados).

Mientras corre

./configure --prefix=/mingw

en un sistema MinGW / MSYS para una biblioteca que había ejecutado anteriormente

''./configure --prefix=/mingw && make && make install''

Me encontré con este mensaje:

ADVERTENCIA: Ya está instalada una versión del SDK del complemento de Vamp. Espere preocupaciones y penas si instala una nueva versión sin quitar la anterior primero. (Continuo)

Esto me tenía preocupado. ¿Qué es lo contrario de ''make install'', es decir, cómo se desinstala una biblioteca en Linux? ¿''Limpiará'' hará el trabajo, o hay otros pasos involucrados?


Dependiendo de qué tan bien el makefile / configure script / autofoo magic del programa en cuestión es lo siguiente podría resolver su problema:

make uninstall

El problema es que debe ejecutar esto en el árbol de origen de la versión que tiene instalada y con exactamente la misma configuración que utilizó para la instalación.


Desafortunadamente, no existe un estándar, este es uno de los peligros de instalar desde la fuente. Algunos Makefiles incluirán una "desinstalación", por lo que

make uninstall

desde el directorio de origen puede funcionar. De lo contrario, puede ser una cuestión de deshacer manualmente lo make install hizo la make install .

make clean normalmente solo limpia el directorio de origen, eliminando archivos generados / compilados y similares, probablemente no sea lo que está buscando.



Si sudo make uninstall no está disponible:

En un sistema basado en Debian, en lugar de (o después de *) hacer make install , puede ejecutar sudo checkinstall para crear un archivo .deb que se instala automáticamente. Luego puede eliminarlo utilizando el administrador de paquetes del sistema (por ejemplo, apt / synaptic / aptitude / dpkg ). Checkinstall también admite la creación de otros tipos de paquetes, por ejemplo, RPM.

Consulte también http://community.linuxmint.com/tutorial/view/162 y algunos paquetes básicos de uso de checkinstall y debian checkinstall package .

*: Si estás leyendo esto después de haber instalado con make install , puedes seguir las instrucciones anteriores y hacer un dpkg -r $PACKAGE_NAME_YOU_CHOSEN después.


Si tiene un archivo de manifest que enumera todos los archivos que se instalaron con make install , puede ejecutar este comando que tengo de otra respuesta:

cat install_manifest.txt | xargs echo rm | sh

Si tiene sudo make install , deberá agregar un sudo a su desinstalación:

cat install_manifest.txt | xargs echo sudo rm | sh


make clean elimina cualquier archivo intermedio o de salida de su árbol fuente / construcción. Sin embargo, solo afecta al árbol fuente / construcción; no toca el resto del sistema de archivos y, por lo tanto, no eliminará el software instalado previamente.

Si tienes suerte, ejecutar make uninstall funcionará. Depende de los autores de la biblioteca proporcionar eso, sin embargo; Algunos autores proporcionan un destino de uninstall , otros no.

Si no tienes suerte, tendrás que desinstalarlo manualmente. La ejecución de make -n install puede ser útil, ya que mostrará los pasos que el software tomaría para instalarse, pero en realidad no hará nada. A continuación, puede invertir manualmente esos pasos.


make clean generalmente solo limpia los archivos construidos en el directorio que contiene el propio código fuente, y rara vez toca ningún software instalado.

Los makefiles generalmente no contienen un objetivo para la desinstalación, por lo general, debe hacerlo usted mismo, eliminando los archivos del directorio en el que se instalaron. Por ejemplo, si creó un programa y lo instaló (usando make install ) en /usr/local , querría ver a través de /usr/local/bin , /usr/local/libexec , /usr/local/share/man , etc., y eliminar los archivos no deseados. A veces, un Makefile incluye un destino de uninstall , pero no siempre.

Por supuesto, normalmente en un sistema Linux se instala software utilizando un administrador de paquetes , que es capaz de desinstalar el software "automágicamente".