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.
La utilidad de "almacenamiento" fue diseñada para resolver este problema: http://www.gnu.org/software/stow/
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".