Live data from Hacker News

Any sufficiently advanced uninstaller is indistinguishable from malware

devblogs.microsoft.com

381–390 of 556 posts

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#382
post #355

Why do we still need to install stuff? Why can I run webpages just fine without installing anything? Installation shouldn't exist, at least not from the user's point of view.

Because the tools we currently use (mostly programming languages) are too insecure to allow you to run any random code from the internet (that has full access to all your computer resources). And most users would be incapable of keeping proper security practices needed in this case. Installed software is considered to have a distributor, ie. a legally responsible entity that can be punished for any shenanigans. I bel…

>any random code from the internet

Like installer.exe?

Installation-free software doesn't have to be web software.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#383

Uninstaller should not exist. Installers should not exist either. Every OS should have a package manager. The name clearly implies what it does: it manages packages; this task should be left to a specialized software, not to the user. Linux distros were pioneers in this aspect and "stores" of the modern world are just a clothed versions of package managers. of course, a power user should should have the right to chan…

You are right. Linux distros were pioneers and it used to be great, but it's gone off the rails now. Running kde-neon I have pkcon, apt/aptitude (for when I forget pkcon or one of its commands), flatpaks, AppImages, and the usual rigamarole of uninstalling snap and then setting up app-level installers for the things that previously only had snap candidates (lookin' at you Firefox). On the RH side I have both yum and dnf? Mokay.

Back when I was installing KDE on top of another distro, I'd also have the Discover front-end sitting next to Gnome's Software Center (or whatever it was). That should be somewhat expected and is more an indication of the bloat that major window managers have embraced.

The front-ends are decent about showing what source a piece of software came from, which is nice, but the last time I used them they didn't stop one from installing the same piece of software from two different sources.

All to say, back in the day it was so convenient to have yum or aptitude just take care of things installing software, resolving conflicts, etc. Now we're in a bit of a mire.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#384
post #366

Earlier quoted context omitted.

> The name clearly implies what it does: it manages packages; this task should be left to a specialized software Yes, but the modifications that are possible are limited by what the API of the package manager provides. Like Windows Installer does. If that doesn't work you create custom install uninstall logic, which has the potential to be less robust/reliable than what the package manager provides.

I mean all Linux package managers allow running arbitrary code on install/uninstall and it seems to work well enough.

It only works because packages are distributed via a carefully curated, centrally-managed repository with socially-enforced norms.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#385

Earlier quoted context omitted.

More than that, you have to "install" the code for every webapp that you use at least once (unless it's cached).

How do you differentiate between download and install? Is self-modifying code repeatedly installing itself?

There's no good distinction, but given that browsers have caches, I think there's at least a very blurry line there.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#386

Uninstaller should not exist. Installers should not exist either. Every OS should have a package manager. The name clearly implies what it does: it manages packages; this task should be left to a specialized software, not to the user. Linux distros were pioneers in this aspect and "stores" of the modern world are just a clothed versions of package managers. of course, a power user should should have the right to chan…

The difference between a "package being installed by a package manager" and "an application being installed by an installer" can be as small as you want. Linux packages have "installers and uninstallers" in the sense that inside a .deb file for example there are scripts doing necessary tasks for installing and uninstalling. And whether they make a mess is only dependent on these scripts behaving in a way that doesn't make a mess.

So having a package format or package repository doesn't necessarily prevent packages from doing arbitrary or stupid things (there is no difference between a .deb file or an .msi file in that regard). The app store ore repository might add a level of human vetting, but technically there is no difference.

I would argue that it's better to have most of the vetting be technical: ensure that the package/installer format doesn't allow making a mess. Sandbox everything, prevent writes in the wrong places etc. More modern formats like flakpak/msix/etc are of course better in this regard.

And the key thing about them is that they prevent a mess on the technical level so that the human vetting (and thus repository) isn't really required.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#387

Earlier quoted context omitted.

The ~/.whatevertheyfeellike is an antipattern (that is annoying) but the others are well defined in the xdg_desktop spec[0]. Personally I appreciate knowing where the config/cache for each application is. (Though it does annoy me when programs don't follow this as in your third example) [0] https://specifications.freedesktop.org/basedir-spec/basedir-...

Why does the XDG spec have authority over software?

They don't. XDG specifications are recommendations. Their only power is that your software will integrate poorly with other software (specially desktop software) if you ignore their guidelines.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#388

Earlier quoted context omitted.

A VSCode extension would be installed and managed by the OS package manager. User created content would be not.

Really? Do you install Firefox extensions from apt-get?

I haven't used Linux in a while, but I do remember seeing browser extensions in the package manager.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#389
post #371

Earlier quoted context omitted.

Many program can run as standalone .exe, or just unzip as a folder. All the points you list does not need _Special_ installers / uninstaller.

Yes, that is what I mean by my last point: "It allows for portable installations and to run software just copied from other sources." You can think of decompressing from an archive as running a very simple installation program. If the only installer available was one provided by the OS how long do you think it would take to make that the only way to install and run software. These things are being done right now on m…

>If the only installer available was one provided by the OS

There's the non-sequitur. OP never said that this is what should happen. It is strange to leap to this assumption while also wanting to define portable programs and archives as 'installers'.

In the context of Windows, 'special' installers means the programs you run to be able to use a different program that don't appear on other OSes.

Re: Any sufficiently advanced uninstaller is indistinguishable from malware

#390

Uninstaller should not exist. Installers should not exist either. Every OS should have a package manager. The name clearly implies what it does: it manages packages; this task should be left to a specialized software, not to the user. Linux distros were pioneers in this aspect and "stores" of the modern world are just a clothed versions of package managers. of course, a power user should should have the right to chan…

It's not proprietary or not, it's the level of discipline about installing software. iOS is completely proprietary and has a very disciplined system for installing and uninstalling apps. The Windows non-system of installers/uninstallers is really anarchy except to the end user it looks like a system because the installers/uninstaller mostly look the same, mainly because

https://en.wikipedia.org/wiki/InstallShield

became a defacto standard endorsed by Microsoft and everybody else tries to look like it.

The real Windows "quirk" that this article skirts around is that Windows won't let you delete a file which is open and of course if you are running an executable that counts as an open file. This of course can be a huge hassle if you need to delete something and can't find the process which is holding the file open. It's particularly annoying for things like software builds where you really want a script that automatically and reliably clears a lot of stuff away so you can make a fresh start.

Now, POSIX has the opposite "quirk" that you can "delete" an open file and it completes right away because all you did was delete the link from the directory to the file. The file still exists because it has a link from the process that has it open, it really gets deleted when that link goes away.

That can get you in just as much or more trouble than the way Windows does it can, for instance if some series of events caused your system log to fill the disk, you can "rm" the log and the disk is still full. To really free up the space you need to "rm" and then restart the log daemon.

As for Linux it's got the problem of a proliferation of package managers in the sense of things like flatpak and snap and generally the (dumpster fire I think) of Docker images (like the place where they thought Docker would help stabilize their Python installations but somehow our data scientists kept finding strangely broken Python images that were real nightmare fuel for me; e.g. default character encodings that I didn't think anybody actually used)

Windows has realized the ability to install software in C:/Program Files/ and D:/Program Files/ and often in a user's home directory (if the installer supports it.) 20 years ago I thought rpm's sucked and thought "any software worth installing is worth building from source" where I could do

   make-install --prefix=/usr|/usr/local|$HOME
that is I didn't have to beg for my sysadmin to do something like

   apt-get install nethack
I am impressed with the comparative speed of installing from a package manager, but I still can't install a local copy of software with one, and I should be able to.
Post reply on HN