nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
107.33k stars 29.46k forks source link

You added the Chocolatey Checkbox #30242

Closed ekerner-com closed 4 years ago

ekerner-com commented 4 years ago

Is your feature request related to a problem? Please describe. Youre installer installed Chocolatey which in turn installed a motherload of stuff I dont want on my machine with a nightmare to uninstall it all. Its 3rd party spoof and it has ruined the credibility of nodejs for me.

Describe the solution you'd like Completely remove this 3rd party hijack from ur installer.

Describe alternatives you've considered I am going to format my machne, re-install windows, then re-install node while being very careful to NOT check the option to install Chocolatey

devsnek commented 4 years ago

chocolatey is how we install dependencies needed to build native addons, and i think its also what makes our windows installer in the first place, but i could be wrong about that. In any case, it's not some weird spam software, you can check it out here: https://github.com/chocolatey/choco

tniessen commented 4 years ago

FWIW, I was not a huge fan of this addition to our installer either. The good thing is, the option is disabled by default, and the description clearly states that additional software will be installed:

node-setup-choco

I have never enabled this feature, so I don't know how much of a hassle it is to get rid of everything.

Trott commented 4 years ago

@nodejs/platform-windows

ekerner-com commented 4 years ago

@tniessen Its a huge hassle it makes many presumptions and installs much. Ofc I admit I should have read it more closely, however I also propose that the wording "necessary tools" should be changed because none of what Chocolatey installed is "necessary" to build apps with node. I had just spent hours setting up my new machine and dev env exactly how I like it, and chocolately went ahead and installed a dev env how someone else likes it, including a load of libs and tools which didnt want and will never use. It makes many unwarranted presumptions. Even if I did intentionally install Chocolatey it could ask more questions relating to what I may be using node for and how I will deploy it etc, and even what is my preferred IDE etc, rather than presume.

ekerner-com commented 4 years ago

@nodejs/platform-windows

@Trott That link is a 404, and the answer is without context or explanation.

bzoz commented 4 years ago

@ekerner-com it clearly says it will install tools nesecary to build native modules, it is disabled by default, I honestly don't know how this could be made any more clear

ekerner-com commented 4 years ago

@bzoz Scroll up and look at the screenshot by tniessen, it does not say "to build native modules". Again, I concede I was moving too fast, however the sentence "Automatically install the necessary tools fullstop" is misleading Im sure noone can disagree. If you want to convince urself that the sentence next to the checkbox is clear and concise and cannot be misconstrued I cant debate with you.

bzoz commented 4 years ago

Just above the checkbox, there is this statement:

Some npm modules need to be compiled from C/C++ when installing. If you want to be able to install such modules, some tools (Python 2 and Visual Studio Build Tools) need to be installed

IMHO the text is clear. If you have an idea on how to improve it - PRs are always welcomed, the text for the checkbox is here. Opening new PRs is easy, we have a guide over here.

Oh, and the @nodejs/platform-windows pings people from the platform-windows group and notifies them about this issue.

ekerner-com commented 4 years ago

Thanks @bzoz If Im gonna suggest the text Id be using warding words like bloatware and virus :) Maybe best I leave it for someone else. But seriously Im honestly too busy to become a contributor here Im sorry I cant remove the stumbling block, maybe the next victim.

gireeshpunathil commented 4 years ago

Question answered. OP's reword suggestion does not fit this repo's objectives. No further action identified.

tniessen commented 4 years ago

Has anyone from @nodejs/platform-windows used this option? Can someone confirm whether it installs anything other than what the dialog says, that is, anything other than Python 2, Visual Studio Build Tools and Chocolatey? (Or does Chocolatey come with a bunch of extra software?)

ekerner-com commented 4 years ago
ekern@DESKTOP-BQ67VVL MINGW64 /c/dev/hydrotech/app (develop)
$ clist -l
Chocolatey v0.10.15
2 validations performed. 1 success(es), 1 warning(s), and 0 error(s).

Validation Warnings:
 - A pending system reboot request has been detected, however, this is
   being ignored due to the current command being used 'list'.
   It is recommended that you reboot at your earliest convenience.

chocolatey 0.10.15
chocolatey-core.extension 1.3.4
chocolatey-dotnetfx.extension 1.0.1
chocolatey-visualstudio.extension 1.8.1
chocolatey-windowsupdate.extension 1.0.4
dotnetfx 4.8.0.20190930
KB2919355 1.0.20160915
KB2919442 1.0.20160915
KB2999226 1.0.20181019
KB3033929 1.0.5
KB3035131 1.0.3
python2 2.7.17
vcredist140 14.23.27820
visualstudio-installer 2.0.1
visualstudio2017-workload-vctools 1.3.2
visualstudio2017buildtools 15.9.17.0
16 packages installed.

Thats what it installs, but I maintain that the users decision whether to check or not check the box is made under lack of description and poorly chosen or misleading wording "Required Tools" giving the user the impression that they are node required tools.

tniessen commented 4 years ago

Thank you, @ekerner-com!

I maintain that the users decision whether to check or not check the box is made under lack of description and poorly chosen or misleading wording "Required Tools" giving the user the impression that they are node required tools.

I think the installer is very explicit about the fact that these tools are only required for native modules: The dialog title is "Tools for Native Modules", the subtitle is "Optionally install the tools necessary to compile native modules" (making it very clear that this is optional), and then there is more text explaining what these tools are for. However, I can see this being confusing to new users who don't know what native modules are.

Even if you check the box, it will not perform the installation directly, instead, it will start this script. The script asks for manual confirmation twice before continuing with the installation. First, it displays information including

This script will install Python and the Visual Studio Build Tools, necessary to compile Node.js native modules. Note that Chocolatey and required Windows updates will also be installed. You can close this window to stop now. Detailed instructions to install these tools manually are available at https://github.com/nodejs/node-gyp#on-windows

Then, after the user manually confirms that they would like to continue, it displays this:

Using this script downloads third party software This script will direct to Chocolatey to install packages.

Only after accepting this, the installation begins. At this point, the user has explicitely expressed their consent not once, not twice, but three times.

ekerner-com commented 4 years ago

Thanks @tniessen tniessen

Re: "I can see this being confusing to new users"

Im not a new user, and I understand the message perfectly, however I didnt read it all, I just read - very quickly - what was written beside the checkbox, and only 50% of it. So ofc its my fault. However who ever reads all of the fine print in these things. Iv installed node so many times and wasnt expecting any traps. However I concede that "OP's reword suggestion does not fit this repo's objectives" wins this argument, and it must be its the objective of the installer to promote chocolatey or otherwise promote the installation of the native build tools.

jotaf98 commented 3 years ago

To a new user, "native modules" sure as hell sound like necessary modules to use nodejs. Hence the implicit pressure to install it.

There is no context or explanation as to what these "native modules" are, and whether they are necessary for 90% of users. Or whether they can be installed at a later time if needed, or must be installed now.

jordankittle commented 3 years ago

The option seemed important enough for me to come here to see if I needed to install it. I've decided I'm not going to. I think having an entire screen dedicated to the installation of it makes it feel like it could be very important and it did feel a little pressuring. Maybe adding it to the bottom of one of the other screens (like the one that asks you if you want to add node.js to PATH) would feel less pressuring.

thuccv98 commented 3 years ago

helllo everyone... so how to remove it? thanks

ekerner-com commented 3 years ago

helllo everyone... so how to remove it? thanks

Its basically a virus from my view. You remove it like you remove any virus, a lot of googling and hacking on ur system. It was a headache to remove.

n2k3 commented 3 years ago

After some digging, trial and error, I've come to the following steps to uninstall almost everything with one command:

  1. Press [Windows]+X then press the a key (this will open Windows PowerShell with Admin privileges)
  2. Copy the line below and paste it in to the shell and press enter
    choco uninstall kb2919355 kb2919442 kb2999226 kb3033929 kb3035131 python3 dotnetfx vcredist140 chocolatey-windowsupdate.extension chocolatey-visualstudio.extension chocolatey-dotnetfx.extension chocolatey-core.extension chocolatey -y; choco uninstall visualstudio2019-workload-vctools visualstudio2019buildtools visualstudio-installer -n -y
  3. Reboot your pc, now everything should've been uninstalled that was installed during the Node installation.

There are probably small remnants left, such as Chocolatey itself and some entries might remain in the Programs and Features. That's because Chocolatey doesn't update those via the registry after any successful uninstalls.

The above command might be outdated for future releases. For a more future proof scenario, probably use this:

choco uninstall all -y; choco uninstall all -n -y

NOTE: this is a more broad approach, and could remove stuff that was not installed via Node (for example: if the user has previously used chocolaty before).

Hopefully this helps somebody.

KavishBamboli commented 3 years ago

After some digging, trial and error, I've come to the following steps to uninstall almost everything with one command:

  1. Press [Windows]+X then press the a key (this will open Windows PowerShell with Admin privileges)
  2. Copy the line below and paste it in to the shell and press enter
choco uninstall kb2919355 kb2919442 kb2999226 kb3033929 kb3035131 python3 dotnetfx vcredist140 chocolatey-windowsupdate.extension chocolatey-visualstudio.extension chocolatey-dotnetfx.extension chocolatey-core.extension chocolatey -y; choco uninstall visualstudio2019-workload-vctools visualstudio2019buildtools visualstudio-installer -n -y
  1. Reboot your pc, now everything should've been uninstalled that was installed during the Node installation.

There are probably small remnants left, such as Chocolatey itself and some entries might remain in the Programs and Features. That's because Chocolatey doesn't update those via the registry after any successful uninstalls.

The above command might be outdated for future releases. For a more future proof scenario, probably use this:

choco uninstall all -y; choco uninstall all -n -y

NOTE: this is a more broad approach, and could remove stuff that was not installed via Node (for example: if the user has previously used chocolaty before).

Hopefully this helps somebody.

This would only remove the additional "necessary tools" that were installed and not node.js itself right?

n2k3 commented 3 years ago

This would only remove the additional "necessary tools" that were installed and not node.js itself right?

Yes, that's correct.

GrizzlyAK commented 2 years ago

Another perspective. I'm new to node.js, and this whole choco thing gave me pause. I decided to abort the install of the "additional tools" to research it more. As a new user of node.js, I wrongly assumed, based upon the wording, that this was necessary, simply because I don't know at this point whether or not I need to compile native modules. Not helpful, and seems a bit shady.

jamesSampica commented 2 years ago

I found this issue because I didn't know what "native modules" are or why I would need them. Based upon my reading here it sounds like I don't need them but based on my reading of the dialog my first presumption was that I did.

ghost commented 1 year ago

Another Perspective.... I'm new to node.js, and stopped after the notification this was going to install "necessary" applications totaling 3GB worth of disk space, some of which I think i already have installed after installing a WAMP environment. I don't think i need another C/C++ compiler (?), nor choco. The only reason i need node is because it was necessary to install Localtunnel and was considering this checkbox because I have no idea how far down this app dependency hole goes... Does using Node to install a Localtunnel app package require Node to "compile" this "native module"? so... you guys may know what are "necessary tools" but morons like me don't.

billyzkid commented 1 year ago

I agree with the above complaints about installing Chocolatey via the Node installer.

  1. Chocolatey truly is a mess to uninstall. It can't seem to be uninstalled via "Add or Remove Programs" nor can I uninstall the numerous Choco-* programs installed along with it. To address this, Chocolatey.org offers a long Powershell uninstall script and scary disclaimers which also doesn't seem to work. Then they go on to say "Just remove the Chocolatey program folder!" which obviously leaves your PC in a state where it still thinks Chocolately is installed. Why do they even need a special uninstall script? No other professional software needs a script. I consider this bloatware.

  2. The Node installer language is a bit confusing by using the term "necessary tools" even if the checkbox is unchecked by default. Honestly, what percentage of Node users actually need Chocolatey? Seems low.

Based on this, I wish the Node installer would just refer users to a separate link to install Chocolatey and explain why you'd maybe want or need it, rather than co-installing it with slightly deceptive language. That is what a lot of other annoying software (malware?) used to do back in the day (looking at you Adobe Acrobat Reader).

EddyParkinsonAllTraders commented 1 month ago

Wording:

"Optionally install native modules?" this is the question that needs asking. This should be the main tick box question.

Why it is useful, wants its own paragraph. How it will be installed, also wants its own paragraph.