Nobody Understands the Word "Uninstall"

Today, I had to scrub the current release of Firefox from my workstation.

Uninstall leaves endless droppings, hence the title of this thread.
To the best of my knowledge, Mozilla does NOT offer a scrubber to fully clean it out.

Only the developers know all the little registry droppings, etc, so it makes sense they would write a scrubber.
Not to be.

I spent the morning chasing down "Mozilla", "Firefox" and "Netscape" in my registry.
I found every file, directory and registry with these three keywords in the file name, and deleted them all.

I am amazed at how much crap they leave behind.
Q: to pro developers, is a scrubber too much to ask?
 
That's why my OS installs don't usually last a month :p I accidentally ran a Wine app without WINEDLLOVERRIDES=winemenubuilder.exe=d and ended up with 5 shortcuts and over a dozen different-sized icons for something I didn't even want to install. NVIDIA and AMD even have driver cleaning tools on Windows (small exes separate from the driver packages).

A clean OS install cleans up everything quicker than I can track stuff down :p
 
Only the developers know all the little registry droppings, etc, so it makes sense they would write a scrubber.
Not to be.
What registry? FreeBSD has a registry now? That's new to me!

I really fail to see the problem here. Because the "bloat" (aka: config files) is usually well documented, not to mention that ports and packages on FreeBSD generally speaking (!) don't dump that bloat onto our systems in the first place. These are usually presented as .sample, .rc or alike files which you're encouraged to copy, edit & rename and then use that as your main config.

Obviously those don't get removed when you deinstall a package because... it was you who created those. Are you seriously suggesting that package maintainers should remove config files which they "think" are part of their port/package? Please tell me you're joking....

Oh, right... registry.. this is probably also about Windows? Do you even realize what minor (!) impact a registry entry actually has on Windows?

(sorry mods, (brief!) offtopic rant follows!) => Even if you believe in the fable that the whole registry is always locked & loaded on Windows at all times (note: ever tried cd HKCU: on PowerShell in Windows? you should....) ... anyway, even if you choose to believe that nonsense then... what's the impact of a few more bytes (!) going to do for you, hmm? Because that is what we're usually talking about in the first place: a few bytes! maybe barely a kilobyte. In memory (!) (not even necessarily on storage where you have to cope with data blocks!).

Surely we're not offtopic here and are talking FreeBSD, right? Also considering your choice of forum? :cool:

Then we're right back where we started: you made / placed those config files, so you also should get rid of them.
 
I just wonder if you have tried using FreeBSD methods to track down package data. You could even use pkg info to glean data about firefox:

Code:
pkg info -l firefox | less > ~/foxylist.txt

I agree with other comments about the term registry. You must realize that this is a Microsoft concept, which is really like a database for rc entries and package information. I disagree with any need for Powershell because Windows has a nice tool called regedit and double-click reg files are simply awesome. pkg-register is something completely different.

Maybe you could clarify what you mean by the word registry. Someone should be able to offer commands to track down whichever files you consider to be droppings.
 
nvidia's proprietary driver (x11/nvidia-driver) uses the term "registry" something like hw.nvidia.registry.EnableGpuFirmware, but they are actually tunables or sysctls.
I'm not a nvidia insider, so just a prediction, but maybe they use the names thoughout all OS'es they support, but the actual implementations differ per-OS. For Windoze, actual registry, for FreeBSD, tunable and/or sysctl, keeping the names and values match.
 
This a general observation and windows is my primary platform.

I’m here as an enthusiastic supporter of FBSD for my specific needs.

I’m not one who installs a new OS on a monthly basis. I need to get work done and not tinker with the OS.

My point being that only the developer knows all the hooks and droppings he installs, and his uninstall process should remove them all.
 
My point being that only the developer knows all the hooks and droppings he installs, and his uninstall process should remove them all.
Should that also include any local configuration you may have done?
Think about an email application that does pop and pulls your email off a server and stores it locally. That would be locally generated data/config. If it gets deleted you lose all your emails.
I believe some things in Windows "Registry" is considered user changed data, so if it's deleted it's gone.
Doesn't Windows have an "uninstall" option the apps? Something that basically runs the application installer with a remove option?
I think that given the way Windows controls the install of applications and the fact that the Registry is a Windows component not an application, that as part of an install/changes Windows should track Registry items so they can be unravelled at application uninstall.

As for *nix systems:
I would prefer if all user applications were more consistent in where they store local configuration.
A lot of them put it $HOME/.config/appname, but then you have things like firefox that put it in $HOME/.mozilla, when I think it should be $HOME/.config/firefox.
But that's just me
 
Maybe Windoze would be (still) the same, but installers would know (remenber) what they installed by themselves only, and deletes the recorded ones only. It excludes everything done outside the installer.
Otherwise, all apps (i.e., Photoshop, Illustlator,...) SHALL be invoked through the installer EVERY TIME WITHOUT EXCEPTIONS and the installer SHALL record EVERYTHING THE USER DID ON THE APP to keep track with what's needed to be deleted on deinstall. Isn't it crazy?

And many apps does app-specific setups AFTER install, including first-start initializations and/or registrations (in proprietary apps, this may modify registry in recent Windoze world). It's done outside the installer.

On Unix-derived OS'es including FreeBSD, the OS is "multiuser".
If deinstall means deleting everything related with it, ALL users that uses the app SHALL be notified and made ready to switch to any alternatives that remains. This could take hours, days, weeks, months, years or even decades depending on the interval the users run the app per-user basis.

If all of modified (non-default) configs and data are kept, affected user has chances to request the admin to install the app again, and once reinstalled, the user can just keep on working with it. This would be why not everything is deleted on installation.

Note that at least NT-derived Windows like Windows2000 and Windows10 are multiuser (single user at the same time, though).
 
This a general observation and windows is my primary platform.
well as a Windows user since 1999, Microsoft also has this problem. Why does anyone have to remove empty folders from Program Files after uninstalling a program? why are the temp folders sometimes filled with full copies of installers? this takes up Gigabytes of space over time and must be cleaned by the user. Why is the registry full of "droppings" after installation. Have you ever looked at the appdata hidden folder? Good Lord! Microsoft is just better at hiding the "droppings". However, Mozilla is also a 'Big Tech' organization. Big Tech makes "droppings" because Big Tech is best summarized as "droppings" themselves. If you want to get more work done, then stop browsing the web and get to work :)

you could install firefox in a jail, which is what alot of FreeBSD users do to keep the system clean.
 
On almost any *nix system, the package manager will deinstall whichever files it installed in the first place, perhaps optionally leaving files in /etc

What the package manager won't do is remove files which were created by the software, or the users whilst it was in use, such as dotfiles or cache data in the user's home, or under /var for example.

Windows similarly leaves remnants after deinstallation, but due to how Windows stores user or cache data and configuration, this can be messy. Of course, developers of software are not obliged to store any data in the registry or within C:\users or C:\program files

In Windows, installers can be anything, from NSIS Innosetup, etc - so it depends on that and who wrote the install script.
 
pkg autoremove will help to remove orphaned dependencies.

Deleting ~/.name_of_uninstalled_software will remove user config / data.

Removing stuffs have to be done carefully to don't delete needed software.
 
pkg autoremove will help to remove orphaned dependencies.

Deleting ~/.name_of_uninstalled_software will remove user config / data.

Removing stuffs have to be done carefully to don't delete needed software.
pkg autoremove often does "overkill".
Especially something are installed NOT using official pre-built pkgs.
It depends on automatic flag recorded in its database, but old-school installations often sets the automatic flag even for specified-to-install leaf ports, thus, those leaves and their dependencies are accidentally deinstalled.

So doing dry-run and checking for the listed ports/pkgs carefully for anything you want NOT to be deinstalled are really contained in the list is strongly adviced ... no, MANDATORY. Be careful, careful ..... careful and careful!

You're warned. ;)
 
I used to be using ports-mgmt/portupgrade[-devel] to manage ports almost from the time it was added into ports tree (at the time, category ports-mgmt was not exist, so it would be in sysutils or misc).

When I tried pkg autoremove to deinstall a bunch of orphaned ports at the first time, it deinstalled almost everything. At the time, I'm on UFS, so I've forced to install almost everything from scratch.

Maybe it was because, when portupgrade switched to call pkg internally instead of old-school way it did before, all ports installed by portupgrade had automatic flag set. Almost no leaves without automatic flag (except what I've installed using pkg install for tests), so pkg autoremove deinstalled almost everything, as they were NOT depended upon non-automatic pkgs.

I've lost track with, but this would have been discussed somewhere in official FreeBSD MLs.
 
It is interesting that ‘nix systems have similar problems with droppings same as windows. Certainly makes a strong case for fresh installs or system image restore.
 
Another consideration would be upgrading/updating.
Some ancient DOS apps simply overwritten the previous version.
Some Windoze (DOS derived) / Windows (VMS derived) app would do, too.

But on FreeBSD ports/pkg framework, it's done as the combination of deinstall (uninstall) and reinstall.

In this case, if "uninstall" means "remove everything related to the software", configurations related to it SHALL be completely removed.
This clearly means, every time the software needed to be updated (including security fixes without other changes, or just a fix for single character typo in its man page), ALL CONFIGURATIONS/CUSTOMIZATIONS SHALL BE DONE 100% FROM SCRATCH!

Is it acceptable? No, at least for me.

And it possibly means any dependencies installed with the software should be deinstalled, too, for complete deinstallation.
But possibly some other softwares installed AFTER said software could require the dependencies, too. Uninstalling the dependencies should harm them. Is it acceptable? No, at least for me.

Uninstallation is not that simple.
 
This a general observation and windows is my primary platform.

I’m here as an enthusiastic supporter of FBSD for my specific needs.

I’m not one who installs a new OS on a monthly basis. I need to get work done and not tinker with the OS.

My point being that only the developer knows all the hooks and droppings he installs, and his uninstall process should remove them all.
So why pick FreeBSD Forums to make that observation?

Yeah, I don't install FreeBSD on a monthly basis, either. Well, I do play with VMs (I have my reasons for that), but my daily driver usually lasts about a year or so.

Yeah, FF is useful when it works, but a pain to upgrade. But frankly, there's no real need to upgrade it every time there's an update for it. I just leave it alone until it breaks down completely, and then do a clean install of FreeBSD. It takes about a year or so before a fresh, up-to-date install of www/firefox breaks down and stops working. That's when I do a clean install with fresh, up-to-date versions of EVERYTHING, including FF.
 
So why pick FreeBSD Forums to make that observation?
Why?
Because I'm curious if poor developer practices are restricted to Windows, or more universal in the 'nix and other worlds.
There are a number of developers here, and it would be interesting to hear their viewpoints.

I don't use simplistic systems where I can give it an enema and start over again.
Mine are highly complex with a huge number of moving parts (VSTs and licenses) each requiring the installation of their own product manager, accounts and passwords.
Add to this my Excel business development, Photoshop and ON1 environment.
These are all on the main machine because dual monitor systems using the 4060ti are not available in virtual machines.

For these reasons, I keep GHOST images of this main machine in various stages of build.

Yes, there is a reason to keep FF at the latest level: many banks, utilities and brokerage houses refuse to connect with a downlevel FF.
This is what forced me away from Win7 and into Win10.

I keep my compilers on separate VMs, as well as Turbo Tax on its own VM (and mandatory updated FF).
Single monitor is annoying for this, but I live with it.

I have a very great admiration for FBSD for what it can do in my situation: NAS.
I am a command line guy from the very beginning, and have a great appreciation for this in FBSD.
 
Because I'm curious if poor developer practices are restricted to Windows, or more universal in the 'nix and other worlds.
Poor dev practices are everywhere. Open Source has its share of crappy software. There are differences between windows and Open Source camps in in how that brews up, and what the fallout is. In the Open Source camp, a bug can take awhile to resolve - or pretty quickly. It's all over the map.

Yes, there is a reason to keep FF at the latest level: many banks, utilities and brokerage houses refuse to connect with a downlevel FF.
Most of the time, they do specify the minimum version of FF. Most of the time, they can be fooled by simply setting the UserAgent string correctly. But yeah, it can be a pain to do the research and troubleshooting every time something stops working. It's a matter of picking what works for you, and accepting the pitfalls of your decision. 😑
 
It is interesting that ‘nix systems have similar problems with droppings same as windows. Certainly makes a strong case for fresh installs or system image restore.
Agreed. Install stuff to /opt/myprog and simply remove the directory when you want to "uninstall" it. People really have made a mess of this over the years I feel. The older Mac OS *had* this right before they dropped the ball.
 
Because I'm curious if poor developer practices are restricted to Windows, or more universal in the 'nix and other worlds.
I have a feeling most people using Containers don't care since the mess is restricted to the container, which I feels carries-over to other similar consumer tech (Flatpaks, Lutris, even stuff in Steam through Proton; it's all isolated prefixes letting people who don't know what files are not be concerned with stuff all over the place)

Abstraction hides the messes, and instead of cleaning up/sorting the mess, hiding it and moving forward is prettier :p
 
Back
Top