¿Cómo desinstalar cualquier programa compilado?

3 envíos / 0 nuevos
Último envío
#1 Jue, 08/06/2017 - 22:15
zagk
Imagen de zagk
Desconectado/a
se unió: 08/06/17

¿Cómo desinstalar cualquier programa compilado?

Estado: 
[ACTIVO]

He instalado previamente CMake que lo piden algunos programas que requiero (para compilar), una vez que los he descargado (en este caso, por ejemplo: kannel, que sirve como centro de mensajería) aplico los siguientes comandos: ./configure, luego make y siguiente a este make install. Ahora supongamos que yo lo quiero desinstalar sin que quede rastro alguno de él, ningún paquete o archivo, ¿cómo hago ahí? Yo solo sé desinstalar por métodos tales como "dpkg -r" o "apt-get remove", pero aún no sé cómo aplicarlo para aplicaciones que primero tienen que ser compiladas y todo eso, ¿cómo se hace en ese caso? Quisiera desinstalar algunas aplicaciones que instalé por ese método y por ahora lo estoy haciendo es recorriendo cada carpeta y donde encuentre un archivo del programa lo borro.

Vie, 09/06/2017 - 04:04
moonwatcher
Imagen de moonwatcher
Desconectado/a
moderador
se unió: 21/01/16

Normalmente para desinstalar un paquete compilado basta con ir al directorio creado durante la instalación:

# cd nombre_directorio

Y ejecutar:

# make uninstall

Normalmente tambien los paquetes traen un archivo readme donde pone las instrucciones para instalar - desinstalar.

Claro para hacer todo esto debes haber guardado el directorio en cuestión.

Yo a modo de ejemplo, tengo un directorio en mi /home para los paquetes que instalo con dpkg (algún paquete que no está en repos) o compilados. Para asi tenerlos controlados.

Saludos.

We were but stones. Your light made us stars

Sáb, 17/06/2017 - 16:27
shicefgo
Imagen de shicefgo
Desconectado/a
se unió: 28/03/16

Hola.

Lo que ha dicho moonwatcher es el método estándar, pero voy a intentar ampliar un poco más.

Al principio, todos los desarrolladores tenían que utilizar algo llamado autotools para construir e instalar sus paquetes. Las autotools nacieron basadas en el antiguo lenguaje de macros m4, apto para hackers y poco más. Este, digamos, sistema de compilación e instalación, es el clásico en el que, una vez descomprimido el paquete fuente, hay que situarse en la carpeta raíz del proyecto y ejecutar los consabidos:

./configure
make
sudo make install

Pero a muchos desarrolladores las autotools ya empezaban a cansarles, así que un buen día apareció algo llamado cmake que, entre otras novedades, tiene la de que puede ser utilizado en distintos sistemas operativos, a diferencia de las autotools, que nacieron para Unix y siguen siendo de Unix.

Con cmake ya no se configura e instala como con las autotools, sino que hay que crear una nueva carpeta en blanco dentro de la raiz del paquete, a la que todo el mundo parece haberse puesto de acuerdo para llamarla build. Supongamos que, al descomprimir el paquete fuente, se ha creado una nueva carpeta llamada "paquete". Las acciones a seguir con cmake serían las siguientes:

cd paquete
mkdir build
cd build
cmake ../
make
sudo make install

cmake ../ equivale al ./configure de las autotools, y a partir de ahí todo sigue igual.

Esto hace que toda la salida de la compilación, así como los archivos ejecutables, se sitúen a partir de la carpeta build, quedanto todo más ordenadito que con las autotools.

Por lo que respecta a la desinstalación, si el desarrollador ha sido amable y comprensivo, la orden make uninstall debería funcionar, tanto con cmake como con las autotools, pero si no ha sido así, o se ha olvidado de algo, siempre podemos ver donde se instalan las cosas mirando el contenido del archivo configure.in, configure.ac o directamente en el configure sin más, pero este último suele más grande y costará más trabajo encontrar las cosas.

Por lo que respecta al sistema cmake, el archivo en cuestión es uno llamado CMakeLists.txt.

Conviene tener en cuenta que en cmake puede haber más de un archivo CMakeLists.txt en distintas carpetas, pero lo normal es que el proceso de instalación esté en el de la carpeta raíz. En las autotools también puede haber cosas en los archivos llamados Makefile.am dentro de otras carpetas, pero lo normal es que esté en el archivo configure.ac (o .in). Hay paquetes que incluyen tanto el sistema de las autotools como el de cmake.

Por lo general, cuando se instala a partir de paquetes fuentes, el destino de los archivos instalados suele ser /usr/local/, mientras que los paquetes obtenidos mediante el sistema de paquetería de la distro irán a /usr/ sin más.

Esto es lo más usual y extendido, pero no es obligatorio hacerlo así y, aunque sería muy raro, no es imposible encontrarse con algún paquete que instala cosas "a su manera", y se vaya al directorio /opt/, por decir algo.

Bueno, me disculparé por el "rollo" aportado, por si acaso. smiley

Saludos.