Pourquoi les programmes ne désinstallent-ils pas complètement (supprimer tous leurs fichiers) lorsque je les supprime?

12

Dans Ubuntu, ou n'importe quel Linux, quand je décide de supprimer un programme puis de le réinstaller plus tard, je remarque qu'il n'a rien supprimé de ce que j'ai fait précédemment, ce qui le rend un peu inutile pour moi, car j'aime souvent installer des choses fraîchement . Chaque fois que je décide de le réinstaller, c'est comme avant la suppression du programme. Pourquoi est-ce?

Je suis habitué à désinstaller quelque chose de similaire à Windows ou Android en ce qu'il supprime complètement tout et la seule véritable façon de récupérer ces données serait de les enregistrer quelque part, ou si elles me donnent la possibilité de me connecter pour les récupérer, est existe-t-il un moyen de le faire sur Linux aussi?

Parfois, je le supprime du centre du logiciel Ubuntu et je l'utilise sudo apt-get --purge remove [application].

J'utilise Ubuntu 18.10, je n'ai rien à désinstaller en ce moment, je suis juste curieux.

SonicStarMan
la source
1
Utilisez purgeau lieu de remove.
Pilot6
1
Android a la possibilité de synchroniser les données avec un compte Google. Est-ce ce que vous entendez par «se connecter pour le récupérer»? Je n'ai pas encore vu cette option sur Windows.
tu-Reinstate Monica-dor duh
9
Croyez-vous vraiment que Windows supprime tout. Mon expérience est bien au contraire. Et le désordre laissé par les applications désinstallées dans le registre Windows est tout simplement horrible.
Ister
2
La plupart des (bonnes) applications Windows vous offrent la possibilité de supprimer votre date d'utilisateur ou de la conserver, mais pas mal d'entre elles ne toucheront pas à vos données personnelles.
T. Sar
@ t-sar Pouvez-vous en citer un exemple? Je n'ai littéralement jamais vu d'offre d'application Windows pour détruire les données des utilisateurs.
tu-Reinstate Monica-dor duh

Réponses:

26

Ce n'est pas tout à fait vrai. Aucune opération de package ne doit en aucun cas supprimer les données utilisateur.

Le raisonnement est simple: l'application ne possède pas les données. Tu fais.

Tout d'abord, en passant, à part l'écran de connexion d'Ubuntu, si une application vous demande de vous connecter , vos données ne sont certainement pas sur votre machine . Le processus de connexion est probablement lié à un mécanisme d'authentification en ligne pour fournir un accès à vos données stockées ailleurs . Android et iOS ont une capacité (limitée) de synchroniser de petites quantités de données utilisateur et de configuration pour les applications avec des serveurs "cloud", mais cela ne disparaît pas nécessairement après la désinstallation d'une application.

Tous les systèmes d'exploitation (y compris Windows * et Android) dépendent des scripts de suppression . Ceux-ci supposent que vous voulez que le logiciel disparaisse, mais conservez la configuration afin de pouvoir le réinstaller plus tard. L' --purgeoption de aptsimplement supprimer les fichiers de configuration .

Si vous effectuez des modifications en dehors de vos propres données (/ home), nous supposons que vous savez ce que vous faites pour que votre système continue de se conformer à votre configuration. Il est facile de rm -Rcréer les fichiers de configuration vous-même, ce n'est pas si facile de récupérer votre version personnalisée des choses de la façon dont vous les aviez configurées. Ces scripts ont donc tendance à pécher par excès de prudence.

Ces scripts font diverses hypothèses sur ce qui a été installé et ils sont fréquemment écrits par des humains qui peuvent faire des erreurs. Parfois, le logiciel fait quelque chose de spécial, en particulier lorsque le logiciel a des dépendances .

Nous ( les développeurs d' Ubuntu) faire faire des tests sur les systèmes de test. Nous installons le logiciel dans une nouvelle installation d'Ubuntu, puis nous courons apt removeet apt --purge removeet vérifiez que le système est revenu à l'attendu (pré-installé) état.

Si vous voyez une situation où un package est installé, aucune modification n'est apportée à la configuration, et le package est ensuite supprimé mais des fichiers restent, alors veuillez déposer un bogue contre ce package.

Une alternative est d'utiliser snap, qui héberge l'application entièrement dans son propre environnement.

* (en fait, c'est l'une des principales façons dont les applications Windows installent les logiciels malveillants, en «superposant» les logiciels malveillants sur les applications que vous choisissez d'installer, puis en ne les supprimant pas lorsque vous les désinstallez.)

tu-Reinstate Monica-dor duh
la source
2
Je pense que la question posée est pourquoi une désinstallation ne supprime pas les données utilisateur créées en utilisant l'application ("n'a pas supprimé tout ce que j'ai fait précédemment"), et cette réponse l'indique simplement comme un axiome dans la première paire de phrases, au lieu de l'expliquer ou le justifier.
ShreevatsaR
2
"Il est facile de rm -R les fichiers de configuration vous-même" Est-ce? Cela suppose que vous savez où ils sont tous. Ne pourraient-ils être nulle part? Je suppose que toutes les opérations d'installation sont permanentes. Je ne vois même pas l'intérêt de fournir une option de suppression pour les gestionnaires de packages. Vous devez toujours recommencer à zéro si vous voulez que les logiciels disparaissent. Suis-je trop fataliste ici?
Nacht - Reinstate Monica
1
" Ne pourraient-ils être nulle part? " Techniquement oui. En réalité, 95% des fichiers se trouveront probablement dans l'un des rares emplacements traditionnels. Très peu d'applications écrivent des fichiers dans des emplacements non traditionnels totalement illogiques. Ainsi, vous n'avez généralement qu'à vérifier quelques répertoires bien connus. Souvent, vous pouvez également rechercher des informations sur le logiciel pour savoir quels répertoires contiennent ses fichiers. Vous pouvez même lancer une VM, installer le logiciel et voir où il écrit les fichiers, si vous le souhaitez. Dans l'ensemble, vous donnez l'impression qu'il est beaucoup plus difficile de trouver quoi supprimer que ce n'est.
VLAZ
2
"Ne pourraient-ils être nulle part?" Si vous n'avez rien changé dans les fichiers de configuration, ils seront supprimés si vous utilisez --purge. Si vous avez fait changer quelque chose en eux, vous savez évidemment où ils sont.
technical_difficulty
3
«Et seulement s'ils n'ont pas été modifiés par l'utilisateur » - êtes-vous sûr? Au moins dans Debian (et donc, dans tous les packages qu'Ubuntu récupère sans changement), la purge d'un package supprime toute sa configuration (à l'échelle du système), que l'administrateur système l'ait ou non modifiée (voir la section politique sur le comportement de configuration ) . Cela ne remplace pas la règle selon laquelle tout élément /homeest interdit, de sorte que la configuration spécifique à l'utilisateur est préservée.
Stephen Kitt
13

sudo apt remove ou la désinstallation d'une application normalement à partir du Centre de logiciels ne fera que désinstaller les fichiers de package normaux et laisser la configuration derrière, de sorte que la réinstallation du package plus tard restaurera généralement à peu près votre état précédent de l'application.

sudo apt purgeou, à la sudo apt remove --purgeplace, désinstallera un package et supprimera en outre les fichiers de configuration résiduels à l'échelle du système par la suite. Vous pouvez également les utiliser pour purger la configuration résiduelle d'un package précédemment supprimé uniquement.

Toutefois, le gestionnaire de packages ne supprimera jamais les données utilisateur ou les fichiers de configuration utilisateur, qui sont créés pendant l'exécution de l'application. Ces fichiers ne sont pas suivis et l'utilisateur est lui-même responsable de les nettoyer de leur répertoire personnel, s'il ne veut pas les conserver. (Théoriquement, un package peut contenir un script post-suppression qui vérifie les emplacements de données utilisateur communs pour les fichiers qu'il pourrait avoir créés, mais cela ne devrait normalement pas être le cas)

Byte Commander
la source
5
Un package dont le script de suppression supprime des éléments ou même examine les répertoires personnels des utilisateurs est un logiciel malveillant et ne doit être accepté dans aucun référentiel de distribution respectable.
R .. GitHub STOP STOPINGING ICE
0

Sous Windows, vous avez toujours une trace du programme invasif dans le registre qui doit être supprimé manuellement. Tout ce qui concerne AV, remplit fortement l'architecture Win… De plus, Windows nécessite une application tierce pour supprimer complètement un programme. Ccleaner et Revo en font partie.

Dans Ubuntu, la purge apt supprime presque tout, sinon tout. Une recherche manuelle dans Synaptic Package Manager montre l'ensemble du processus de suppression. Il peut être revérifié en exécutant la purge apt ou inversement, en le recherchant dans Synaptic.

Vous devez être prudent et précis en utilisant cette application, c'est un endroit chaud.

Mikemecanic
la source
"Dans Windows, vous avez toujours une trace du programme invasif dans le registre qui doit être supprimé manuellement." Eh bien, pas TOUJOURS! Mais c'est un problème.
Laurence Payne