`nvm install` command on MacOS ignores some optional flags - macos

I'm using NVM v0.39.2 on MacOS 12.5.1 (21G83) in ZSH 5.9 (x86_64-apple-darwin20.6.0)
I always keep latest LTS version of the Node for global system usage and to achieve this I run next 1-line command to install newer Node version with latest NPM and set it to be new system default:
nvm install v18.12.0 --reinstall-packages-from=v16.18.0 --latest-npm --default
I've noticed some time ago that the packages from previous version are re-installed automatically, but NPM is installed of default version (in most cases it is latest one, but if not, default one is installed) and this new version of Node is not set as default.
I know how to easily install latest NPM and set Node version as default, but want to do this in 1-line command, because these flags are published in NVM help
I've checked the nvm help, but didn't find any directions about the order of flags or anything similar, which could impact on the behavior. Also I've searched for such cases here, but didn't found anything related.
I expect that latest NPM is installed and new version of Node is set as default automatically after execution of the command:
nvm install v18.12.0 --reinstall-packages-from=v16.18.0 --latest-npm --default
While in fact, default version of NPM is installed and new version is not default one

Related

nativescript cli sidekick with nvm

When I use nvm to install a recent version of node, I have to reinstall tns. I can do that with the command npm i -g nativescript#latest. If I check tns --version I get the appropriate version. However, Nativescript Sidekick keeps telling me to run that command and will not launch. Has anyone gotten Nativescript with node to work with nvm?
I figured this out. I had to set the default node version to a lower than current version to work with Nativescript Sidekick.
nvm alias default 10.13.0

nvm with yarn Yarn requires Node.js 4.0 or higher to be installed

I have nvm:
nvm ls
v8.11.3
v8.11.4
-> v11.1.0
default -> 8.11.4 (-> v8.11.4)
node -> stable (-> v11.1.0) (default)
stable -> 11.1 (-> v11.1.0) (default)
I installed yarn with:
sudo apt-get install --no-install-recommends yarn
I also added in .bashrc alias node=nodejs. But when I try yarn install I see:
Yarn requires Node.js 4.0 or higher to be installed.
How can I fix it?
This gist helped on this problem.
Run the following commands
echo "==> Installing Yarn package manager"
rm -rf ~/.yarn
curl -o- -L https://yarnpkg.com/install.sh | bash
# Yarn configurations
export PATH="$HOME/.yarn/bin:$PATH"
yarn config set prefix ~/.yarn -g
And add the following in ~/.bashrc
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
It should then work properly without the warning after restarting the shell.
First uninstall the nodejs package:
sudo apt remove nodejs
Ubuntu 16.04 contains a version of Node.js in its default repositories that can be used to easily provide a consistent experience across multiple systems. At the time of writing, the version in the repositories is v4.2.6. This will not be the latest version, but it should be quite stable and sufficient for quick experimentation with the language.
In order to get this version, we just have to use the apt package manager. We should refresh our local package index first, and then install from the repositories:
sudo apt-get update
sudo apt-get install nodejs
If the package in the repositories suits your needs, this is all you need to do to get set up with Node.js. In most cases, you’ll also want to also install npm, which is the Node.js package manager. You can do this by typing:
sudo apt-get install npm
This will allow you to easily install modules and packages to use with Node.js.
Because of a conflict with another package, the executable from the Ubuntu repositories is called nodejs instead of node. Keep this in mind as you are running software.
To check which version of Node.js you have installed after these initial steps, type:
nodejs -v
Screenshot for nodejs version
I just want to mention that my configuration file looked something like that
export PATH=$PATH:`yarn global bin`
#NVM INITIALIZATION STUFF
(yarn docs recommended $PATH)
the export was before my nvm initialization. Which meant node was not available during the runtime of that line. So I just switched my configuration file to be
#NVM INITIALIZATION STUFF
export PATH=$PATH:`yarn global bin`
I had the same issue. by putting nvm path above yarn path didn't solve the issue then I looked up for a solution in man page and solve the issue by setting default node version on a shell.
Current lts version is v14.17.6 so i install it use it and set default node version on a shell.
nvm install --lts
nvm use --lts
nvm alias default <version>
Additional you can set always default to the latest available node version on a shell by running below command.
nvm alias node <version>

NVM for Windows not working?

I just installed NVM for Windows, but it doesn't seem to be working:
Any ideas?
First examine your actual "C:\Program Files\nodejs" directory. Most of us already have a "nodejs" directory from a prior install, before we decided (or were told) to install nvm.
In the end, this "C:\Program Files\nodejs" directory will actually be a shortcut to where nvm manages the versions it installs (see C:\Users\xxx\AppData\Roaming\nvm). It seems that nvm is simply switching the shortcut, when we call "nvm use ...".
Ok, so here is what I did to fix the situation where "nvm use ..." was not taking effect.
Delete/remove/uninstall the version of node in your "C:\Program Files\nodejs" directory. To the point where there is no more "nodejs" directory at all.
Delete the existence of nvm (C:\Users\xxx\AppData\Roaming\nvm), basically, manually delete the nvm dir.
Download your desired version of nvm (https://github.com/coreybutler/nvm-windows/releases)
Open a CMD prompt (run as administrator), and install the downloaded version of nvm, nvm-setup.exe, from within this CMD command prompt.
From within the admin level command prompt, run "nvm install 7.2.1", or whatever node version you want to install. Probably you will be installing multiple versions, so repeat as needed.
Now do the usual "nvm use ...", "nvm list", etc...
I dont know if this is the best way, but it worked for me...
Having the same issue after installing latest node with nvm. node command was not recognized in console. Closing and opening command windows did not work. checked nvm arch to which the response is
C:\WINDOWS\system32> nvm arch
System Default: 64-bit.
Currently Configured: -bit.
Had to set the node again with arch setting
C:\WINDOWS\system32> nvm use 7.4.0 x64
Now using node v7.4.0 (64-bit)
C:\WINDOWS\system32> nvm arch
System Default: 64-bit.
Currently Configured: 64-bit.
C:\WINDOWS\system32> nvm list
* 7.4.0 (Currently using 64-bit executable)
4.5.0
C:\WINDOWS\system32> node -v
v7.4.0
Rename "C:\Program Files\nodejs" to "C:\Program Files\nodejsx"
nvm use x.x.x
This worked for me. Maybe it will work for you too.
Most likely what is happening is that the system %PATH% is being updated outside of the command prompt instance. Only opening a new command prompt will pick up these new external changes.
I had the same problem in Windows 10, and the solution for me was in #pleverett answer in https://github.com/coreybutler/nvm-windows/issues/191
Symptoms: no bit architecture and no default version
C:\WINDOWS\system32> nvm arch
System Default: 64-bit.
Currently Configured: -bit.
C:\WINDOWS\system32> nvm list
8.9.4
6.13.0
Solution:
After uninstalling node, make sure the directory where node was originally installed has been removed and not just empty. For Windows 7 ad 10, 64-bit, the default is "C:\Program Files\nodejs".
If the "nodejs" directory still exists then the "nvm use" command can't make the symbolic link to the node version under nvm's control.
I had the same problem until I manually deleted the "nodejs" directory.
Make sure you delete all old nodejs.
Install nvm
Install node
Open new terminal prompt
run 'nvm on'
run 'nvm list'
run 'node --version'
In my case I was using git bash -- switching to cmd.exe worked.
More suggestions at: https://github.com/coreybutler/nvm-windows/issues/58
I had to manually set the PATH variable in System environment variables of Windows to fix this issue.
Here are the steps:
Before installing nvm, delete the following path:
C:\Program Files\nodejs
C:\Program Files (x86)\nodejs
after installing nvm execute:
nvm use
After the use command you can find a shortcut 'C:\Program Files\nodejs' is created by
nvm in this path.
The problem i found was the path 'C:\Program Files\nodejs' was not set in the windows system evnironment PATH variable.
i appended 'C:\Program Files\nodejs' to the %PATH% variable to fix this issue.
I had to open the installer with admin permissions.
Then I opened the command line and I was able to install and use nvm properly.
nvm install 10.0.0
nvm use 10.0.0
node --version
// version 10 is used.
I installed nvm-windows in order to get multiple versions of node to work. After installation I got the error that most folks complained about which is that it was unable to find the file settings.txt. There are two things required to get nvm-win to work and the installer only does the first of these two. So after installation just check that points 1 and 2 are covered and you should be good. There is no need to uninstall prior versions of node as far as i can tell.
update the system path variable to the directory where you installed nvm and where the nvm.exe is located. ex. c:\nvm
add a new variable NVM_HOME to the system variables.
open a new command window after verifying 1 and 2.
Problem 2 switching between versions
Switching between versions gives a success message but it will not actually work properly unless you manually update the windows system path variable to point to the location that you installed your target version in, for example C:\Users\adamm>nvm list
10.15.1
* 6.4.0 (Currently using 64-bit executable)
So it appears to work but if you type node -v it will show whichever version is currently in your path variable until you edit the path variable to use 6.4.0
I was getting the same issue. I installed node using nvm but 'node' and 'npm' were not recognized by the system.
So, what I did was I didn't delete any folders or anything I just ran the command prompt as administrator and did the nvm install 'desired-version' and everything started to work fine.
I understand this is an old question.
However, what fixed it for me isn't in any of the answers above, which is why I decided to answer this in case new persons find this page and none of the above answer works for them...
All I had to do was run nvm on which creates the symlink (supposedly, nvm use <version> is supposed to work, but it wasn't), turning on nvm before using a version worked for me.
Steps:
nvm install <version> -> Installs a node and npm of <version>
nvm on -> Turns on nvm, and creates the nodejs symlink needed
nvm use <version> -> To use a specific version
node -v -> prints out version of node
npm -v -> prints out version of npm
Hopefully, it fixes your issue too.
For me,
nvm list
Then I remove v8.9.4 folder out of nvm.
After that:
nvm list
Then, I move v8.9.4 back.
For me it was I installed node using nvm on a non-admin cmd.
Running cmd as admin worked for me.
open a new cmd with admin rights then run this command.
run 'nvm on'
Why isn't node version changing with nvm for windows even when nvm on ?
when nodejs is already installed, the enviroment variable NVM_SYMLINK which created when nvm for windows is installed will point to C:\Program Files\nodejs(which is default)
what is the expected behavior ?
when we run nvm on and then nvm use x.x.x, we should able to switch to the desired node version without any hassle.
how to fix ?
uninstall the nodejs using uninstall/remove programs from control panel and delete C:\Program Files\nodejs if exists
check (once) if NVM_SYMLINK in environment variables is changing automatically when running nvm use x.x.x
if not changing automatically then uninstall and reinstall nvm for windows (remove any other node remains)
Note: I am able to switch to the desired versions of node by changing the user environment variable NVM_SYMLINKto C:\Users\Charlie\AppData\Roaming\nvm\vx.x.x without uninstalling the node.
At my work we are assigned a user account and an administrative account which we use to install and manage software for our machines. NVM was installed under this admin account and therefore, none of the answers above worked for me.
I had to manually add %NVM_HOME% and %NVM_SYMLINK% to my user account's path before I could get node --version to display anything.
So if you have to deal with a regular account and an administrative account then the following will work for you:
Install NVM (which will have to be installed using your admin account)
Manually added %NVM_HOME% and %NVM_SYMLINK% to your user account's path (if you check your admin account's path you'll see these 2 were added there during the NVM installation)
nvm install latest
nvm on
nvm use x.x.x
Restart computer so your IDE recognizes the changes
$Profit$
To me the issue was that I had problems with the download, I had to download the zip file manually and place its contents int he nvm folder C:\Users\xxx\AppData\Roaming\nvm
Try nvm run node --version
You can also get the path to the executable to where it was installed:
nvm which 5.0
Something that fixed it for me: Comb through your PATH variable. I had multiple links to different node versions and it worked perfectly after I cleaned up all of them, leaving NVM's variables in tact.
If executing where node comes back with more than one path this is likely your issue.
This work fine for me:
In the C:\Program Files\ folder use cmd to run mklink /D /J nodejs C:\Users\[user]\AppData\Roaming\nvm[node version]
Please note that cmd run in administrator mode.
Detail here: https://github.com/coreybutler/nvm-windows/issues/321#issuecomment-407876718
For me, the issue was that I was using the nosetup way and downloaded the zip in my user Downloads folder. When I switched to setup installer, it worked for me.
You need Administrator access for installing node. Since you got into problem before knowing solution, follow below step.
Note down all installed node version(Optional)
"C:\Program Files\nodejs" (Optional but Recommended)
Delete "C:\Users\xxx\AppData\Roaming\nvm"
Reinstall nvm
Run cmd as Administrator
nvm install x.x.x
I had same issue. C:\Program Files\nodejs shortcut folder was present but was not pointing to anywhere.
I simply deleted the C:\Program Files\nodejs symlink and executed the below command
nvm use 0.10.36
This created new C:\Program Files\nodejs symlink and it worked properly.
Aside to all other solutions described here, there is another issue with nvm. Nvm switches between version of Node.js. Node.js builds are grabbed from Node.js repository.
If you can switch between some versions, but not all, and specifically you can not switch to versions you just grabbed, that answer is for you.
The situation happens because Node.js rebuilds old builds. For example, there is a build 10.14.1 you can grab from their repository, and that nvm grabs. But it is not a build from the past. Node.js rebuilds old builds too regularly.
Unfortunately, they don't take care about backwards compatibility. It means that if your operating system is not supported by Node.js, not only the latest build won't be supported. All old builds will also be broken for your system.
Currently, Node.js supports Windows 10+. It means that all old Node.js packages has been rebuilt in a way, that break them for Windows 8.x and Windows 7.
What is astonishing, there is no place to grab the old, working builds. Once they rebuild old releases, they break backwards compatibility.
As for now, there is no solution for that. The only thing you can do, is to grab releases while they are supported on your system. For example now, you can grab versions for Windows 10, because when they announce Windows 11 is a minimum requirement, all Node.js builds will break on Windows 10.
From the nvm perspective, you can see any kind of errors during the installation. During switching the visible result is that you can not switch between versions. The version you choose is not the current one and not marked with an asterix in the npm list result.
For me there were 2 things I needed to do:
Run nvm install as administrator
Specify the exact version (major.minor.point) with nvm use
Steps:
Open Terminal as Administrator
Run nvm install 14
Run nvm use 14.20.0
Open Terminal as non-admin
Run node -v to verify it's using 14.20.0
If I tried nvm use 14 without minor or point version, it did not work, which differs from NVM on Mac. I also could not run nvm use in a non-admin terminal, it gave "Access is denied".
For me deleting npm and npm-cache folder from AppData works
For me running nvm install 14.0.0 from PowerShell with admin rights did the job.
You must delete your C:\Program Files\nodejs directory.
Check the version of the node available with nvm list.
If you have your version, run command nvm use x.x.x.
otherwise run nvm install x.x.x and run command nvm use x.x.x.
For me setting up environment path variable also didn't work. Finally I got the cause and it was incompatible node version, once I downgraded my node from 14 to version used in my frontend application i.e. v8.11.3, it worked for me.

How do I update npm on Windows?

When I install node 0.10.33 from the msi ( http://nodejs.org/download/ ), I get an old version of npm (1.4.28). How can I upgrade npm on Windows?
npm install -g npm
does not work; I still have the old npm.
You need to follow the Windows upgrade instructions ( https://docs.npmjs.com/try-the-latest-stable-version-of-npm )
tl;dr - npm -g install npm does work, but the old version of npm is still in your PATH.
To fix this, do one of these:
Option 2: remove both of
C:\Program Files (x86)\nodejs\npm
C:\Program Files (x86)\nodejs\npm.cmd
Or
Option 3: Open cmd.exe as administrator, navigate to C:\Program Files (x86)\nodejs and
then run the installation without -g:
npm install npm#latest
*There is an npm package that automate this Option 3:
npm install -g npm-win-upgrade
We at Microsoft Open Source wrote a small tool to automate the process outlined above. You can find it here or just install and run it by executing the following in an elevated command prompt / PowerShell:
npm install -g npm-windows-upgrade
npm-windows-upgrade
There May be many ways to update your npm in Windows
Way 1
Open you power shell as Administrator and run following commands step by step.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade
Here you can select your preferred version of npm
Ready to go !
Way 2
You can simply upgrade to the latest npm version with following command
npm install npm#latest -g
or if you want a specific version of npm simply run
npm install npm#{version} -g for example npm install npm#3.3.12 -g
Now simply run npm --version or npm -v to know your current version of npm
3.3.12 is my preferred version of npm that best suits for approximately every package.
UPDATE
npm install npm#latest -g
the correct npm version is now already shipped with node.js so you can directly switch node version.
you can nvm (Node Version Manager) package to switch node versions very quick and easy.
So, TL;DR; this worked:
Uninstall node
From a command prompt, run where npm
If you had npm installed via chocolatey, you'll see a path like C:\ProgramData\chocolatey\bin\npm.exe - DELETE it!
Now install NodeJS using the appropriate MSI from https://nodejs.org/en/download/
In your favourite shell, type npm --version - this should now echo the version of NPM that came with NodeJS (at the time of this writing, that version is 3.10.10)
This is what worked for me (goofy me!)
I had (age ago) installed npm via chocolatey, which created a chocolatey initiated npm.exe in C:\ProgramData\chocolatey\bin\npm.exe. This was npm version 1.4.9 and wouldn't update no matter what one did including uninstall and reinstall NodeJs.
=======
EDIT: Better way to install node and npm
As of today (27/06/2017), the best way to install and manage node and npm is to install nvm (Node Version Manager) as explained here: https://github.com/coreybutler/nvm-windows. Once you have nvm, installing any node version is super easy:
Open your favourite console (CMD, Cmder, PowerShell)
Type nvm install 6.10.2 (to install node version 6.10.2)
To see the currently active version, type nvm list. This prints something like below:
6.9.3
* 6.9.2 (Currently using 64-bit executable)
6.9.1
6.10.2
It's late 2021 and a lot of these answers can be confusing. npm install -g npm can break your installation. (When I did this, I had to run the Node MSI "Repair" tool to get it working again.) npm-windows-upgrade has not seen a release in over 2 years, and the repo has been archived by its maintainer.
As far as I can tell, there are two options that seem to work reliably today.
Use where npm from DOS prompt or which npm from WSL / Git Bash / etc, to determine which NPM binary is being used.
cd to that path, then run npm install npm#latest (without the -g flag!). npm update npm should have the same effect. You may need an elevated prompt (Run As Administrator).
Verify that this worked by running npm --version.
This worked for me. The other option is:
Completely uninstall NPM + Node using the Add/Remove Programs settings page.
Install an MSI from the Node website.
To upgrade NPM on windows 10
Uninstall Node.js
Restart your system
on command prompt type where npm
delete if npm and npm-cache folder exists in AppData/Roaming
Install Node.js (https://nodejs.org/en/)
You need to follow the Windows upgrade instructions
https://www.npmjs.com/package/npm-windows-upgrade
First, ensure that you can execute scripts on your system by running the following command from an elevated PowerShell. To run PowerShell as Administrator, click Start, search for PowerShell, right-click PowerShell and select Run as Administrator.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install --global --production npm-windows-upgrade
npm-windows-upgrade
Want to just install the latest version?
1.npm-windows-upgrade --npm-version latest
I did something similar to Sam Mikes. I'm only sharing this because I couldn't get either of his solutions to work on my rig. After a bit of playing around, this is what worked for me:
Remove NPM/Node from your Environment Variables, both for user and system.
Close your open console if you have one open, then open a console as administrator
Change directories to %USERPROFILE% -- that's a window's environment variable that takes you to C:\Users\CurrentlyLoggedInUser
Run from the console in %USERPROFILE%, "C:\Program Files\nodejs\npm" install npm -g (you might have yours in the x86 folder)
If this solution would work for you, step 4 would have worked, and npm -v will show a an up-to-date version
Re-add Node (in Program Files)/NPM (in App Data -- the one installed in Program Files should be the old one) to your user and system environment variables
Note: I've used the Microsoft automated script in the past to fix this, but only because I didn't realize how easy it would be to do it myself.
So none of the previous answers solved the issue for me so I thought I would post my specific solution, which I managed to figure out by going through all the other answers so they were really helpful.
My issue was because I had used chocolatey to install node and possibly npm (looking at chocolatey site now I shouldn't have done that).
To solve the issue I simply had to run the relevant choco uninstall commands for npm and node and then everything switched to the other version of node which I had also installed using the node msi (from node's website).
I hope that helps anyone else that may have gone down the same path as me.
I tried almost every answer but none of them works my way.
Neither npm-windows-upgrade worked nor did the npm install npm#latest etc etc worked.
For people like me I will suggest you guys downloading the latest installer from Node.js website, let the existing version of node directory be on it's place and without changing anything just install the msi installer and you will end up with an upgraded version of node.
My case was upgrading node from 6 to 8.9.3
all npm install commands were getting stuck and will throw error (behind proxy error) after sometime. setting up proxy was not helping. This is what I did.
Had 8.11 nodeJS
Uninstalled NodeJS from Programs & Features with the uninstaller.
Reboot (or you probably can get away with killing all node-related processes from Task Manager).
Look for these folders and remove them (and their contents) if any still exist. Depending on the version you installed, UAC settings, and CPU architecture, these may or may not exist:
• C:\Program Files (x86)\Nodejs
• C:\Program Files\Nodejs
• C:\Users{User}\AppData\Roaming\npm (or %appdata%\npm)
• C:\Users{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
• C:\Users{User}.npmrc (and possibly check for that without the . prefix too)
Check your %PATH% environment variable to ensure no references to Nodejs or npm exist.
If it's still not uninstalled, type where node at the command prompt and you'll see where it resides -- delete that (and probably the parent directory) too.
Reboot, for good measure.
Installed 6.11 nodejs then it worked.
Use npm-windows-upgrade tool to simply upgrade. Steps are provided in the link.
For update node npm on Windows
I have to delete node in:
C:\Users**YOUR USER**\AppData\Roaming
And reinstall node

Installing older version of GCC from source

I have gcc4.6 installed. I need 4.2 to be installed without disturbing current version.
OS - Ubuntu 12.04 LTS
Either install using --prefix configure switch to choose another path to install to, or --program-suffix switch, e.g. --program--suffix=-4.2. The docs have more information.
Please note that by default, the prefix will be /usr/local/, but the Ubuntu package will install to just /usr/, so things should be fine. However, if your $PATH lists /usr/local/bin before /usr/bin, you might still run into problems.

Resources