¿Por qué los programas no se desinstalan por completo (eliminan todos sus archivos) cuando los elimino?

12

En Ubuntu, o en cualquier Linux, cuando decido eliminar un programa y luego reinstalarlo, me doy cuenta de que no eliminó nada de lo que hice anteriormente, por lo que es un poco inútil para mí, ya que me gusta instalar cosas nuevas a menudo. . Cada vez que decido reinstalarlo, es como antes de eliminar el programa. ¿Por qué es esto?

Estoy acostumbrado a desinstalar algo similar a Windows o Android, ya que elimina por completo todo y la única forma real de recuperar esos datos sería guardarlos en algún lugar, o si me dan la opción de iniciar sesión para recuperarlos, es ¿Hay alguna manera de hacerlo también en Linux?

A veces lo elimino del centro de software de Ubuntu y lo uso sudo apt-get --purge remove [application].

Estoy usando Ubuntu 18.10, no tengo nada que desinstalar en este momento, solo tengo curiosidad.

SonicStarMan
fuente
1
Usar en purgelugar de remove.
Pilot6
1
Android tiene la capacidad de sincronizar datos con una cuenta de Google. ¿Es eso lo que quieres decir con "iniciar sesión para recuperarlo"? No he visto esa opción en Windows (todavía).
tu-Reinstate Monica-dor duh
99
¿Realmente crees que Windows elimina todo? Mi experiencia es todo lo contrario. Y el desastre que dejan las aplicaciones desinstaladas en el Registro de Windows es simplemente horrible.
Ister
2
La mayoría de las (buenas) aplicaciones de Windows le ofrecen una opción para eliminar su fecha de usuario o mantenerla, pero muchas de ellas no tocarán sus cosas personales.
T. Sar
@ t-sar ¿Puedes citar un ejemplo de esto? Literalmente, nunca he visto una oferta de aplicación de Windows para destruir los datos del usuario.
tu-Reinstate Monica-dor duh

Respuestas:

26

Eso no es del todo cierto. Ninguna operación de paquete debe eliminar los datos del usuario, bajo ninguna circunstancia.

El razonamiento para esto es simple: la aplicación no posee los datos. Tú lo haces.

En primer lugar, aparte de la pantalla de inicio de sesión de Ubuntu, si una aplicación le pide que inicie sesión , es casi seguro que sus datos no estén en su máquina . El proceso de inicio de sesión probablemente esté relacionado con un mecanismo de autenticación en línea para proporcionar acceso a sus datos almacenados en otro lugar . Android e iOS tienen una capacidad (limitada) de sincronizar pequeñas cantidades de datos de usuario y configuración para aplicaciones con servidores "en la nube", pero eso tampoco desaparece necesariamente después de desinstalar una aplicación.

Todos los sistemas operativos (incluidos Windows * y Android) dependen de los scripts de eliminación . Se presume que desea que el software desaparezca, pero mantiene la configuración para que pueda instalarlo nuevamente más tarde. La --purgeopción de aptsimplemente elimina los archivos de configuración .

Si está realizando modificaciones fuera de sus propios datos (/ inicio), asumimos que sabe lo que está haciendo para que su sistema continúe comportándose de acuerdo con su configuración. Es fácil para rm -Rlos archivos de configuración usted mismo, no es tan fácil recuperar su versión personalizada específica de las cosas como las había configurado. Por lo tanto, estos scripts tienden a errar por el lado de la precaución.

Estos scripts hacen varias suposiciones sobre lo que se instaló y con frecuencia los escriben humanos que pueden cometer errores. Algunas veces el software hace algo especial, particularmente cuando el software tiene dependencias .

Nosotros (los desarrolladores de Ubuntu) hacemos hacer pruebas en los sistemas de prueba. Instalamos el software en una instalación limpia de Ubuntu, y luego se corre apt removey apt --purge removey verificar que el sistema vuelve al estado de espera (pre-instalado).

Si usted ve una situación en la que se instala un paquete, no se realicen modificaciones a la configuración, y luego se retira el paquete pero los archivos permanecen, a continuación, por favor, abra una incidencia contra ese paquete.

Una alternativa es usar snap, que aloja la aplicación completamente en su propio entorno.

* (de hecho, esta es una de las principales formas en que las aplicaciones de Windows instalan malware, "colocando el malware" en las aplicaciones que elige instalar, y luego no las elimina cuando las desinstala).

tu-Reinstate Monica-dor duh
fuente
2
Creo que la pregunta es por qué una desinstalación no elimina los datos del usuario creados mediante el uso de la aplicación ("no eliminó nada de lo que hice previamente"), y esta respuesta simplemente lo declara como un axioma en el primer par de oraciones, en lugar de explicándolo o justificándolo.
ShreevatsaR
2
"Es fácil rm -R los archivos de configuración usted mismo" ¿Lo es? Eso supone que sabes dónde están todos. ¿No podrían estar en alguna parte? Básicamente asumo que todas las operaciones de instalación son permanentes. Ni siquiera veo el punto de proporcionar una opción de eliminación para los administradores de paquetes. Siempre debe comenzar desde cero si desea que el software desaparezca. ¿Soy demasiado fatalista aquí?
Nacht - Restablece a Monica
1
" ¿No podrían estar en alguna parte? " Técnicamente sí. En realidad, probablemente el 95% de los archivos estarán en una de las pocas ubicaciones tradicionales. Muy pocas aplicaciones escribirán archivos en ubicaciones no tradicionales completamente ilógicas. Por lo tanto, generalmente solo necesita verificar algunos directorios bien conocidos. A menudo, también puede buscar información sobre el software para saber qué directorios tienen sus archivos. Incluso puede encender una VM, instalar el software y ver dónde escribe los archivos, si lo desea. Con todo, estás haciendo que parezca que es mucho más difícil encontrar qué eliminar de lo que es.
VLAZ
2
"¿No podrían estar en alguna parte?" Si no cambió nada en los archivos de configuración, se eliminarán si los usa --purge. Si lo hizo cambiar algo en ellos, es obvio que sabe dónde están.
technical_difficulty
3
“Y solo si no han sido modificados por el usuario ”, ¿estás seguro? Al menos en Debian (y, por lo tanto, en todos los paquetes que Ubuntu extrae sin cambios), la purga de un paquete elimina toda su configuración (en todo el sistema), ya sea que el administrador del sistema la haya modificado o no (consulte la sección de políticas sobre el comportamiento de la configuración ) . Esto no anula la regla de que nada /homeestá fuera de los límites, por lo que se preserva la configuración específica del usuario.
Stephen Kitt
13

sudo apt remove o desinstalar una aplicación normalmente desde el Centro de software simplemente desinstalará los archivos del paquete normal y dejará la configuración atrás, por lo que reinstalar el paquete más tarde generalmente restaurará su estado anterior de la aplicación.

sudo apt purgeo en su sudo apt remove --purgelugar, desinstalará un paquete y, posteriormente, eliminará los archivos de configuración residuales de todo el sistema. También puede usarlos para purgar la configuración residual de un paquete previamente eliminado.

Sin embargo, el administrador de paquetes nunca eliminará los datos del usuario o los archivos de configuración del usuario, que se crean durante el tiempo de ejecución de la aplicación. Esos archivos no se rastrean y el usuario es responsable de limpiarlos de su directorio de inicio, si no desea conservarlos. (Teóricamente, un paquete podría contener un script posterior a la eliminación que verifica las ubicaciones comunes de datos de usuario para los archivos que podría haber creado, pero que normalmente no debería ser el caso)

Byte Commander
fuente
55
Un paquete cuyo script de eliminación elimina cosas o incluso examina los directorios de inicio de los usuarios es malware y no debe aceptarse en ningún repositorio de distribución repetible.
R .. GitHub DEJA DE AYUDAR AL HIELO
0

En Windows, siempre tiene algún rastro del programa invasivo en el registro que debe eliminarse manualmente. Cualquier cosa relacionada con AV, puebla la arquitectura de Win en gran medida ... Además, Windows requiere una aplicación de terceros para eliminar completamente un programa. Ccleaner y Revo están entre ellos.

En Ubuntu, apt purge elimina casi todo, si no todo. Una búsqueda manual en Synaptic Package Manager muestra todo el proceso de eliminación. Se puede verificar dos veces ejecutando apt purge o inversamente, buscándolo en Synaptic.

Debes ser prudente y preciso al usar esa aplicación, es un lugar cálido para estar.

Mikemecanic
fuente
"En Windows, siempre tiene algún rastro del programa invasivo en el registro que debe eliminarse manualmente". Bueno, no SIEMPRE! Pero es un problema.
Laurence Payne