What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Install NVM as the same non-root user that will run your application, reload that user’s shell, install either the current Node.js LTS line or a pinned release, and set a default alias. On Debian or Ubuntu, the essential commands are sudo apt update, sudo apt install -y curl, the versioned NVM installer, nvm install --lts, and nvm alias default 22 (replace 22 with your supported version). NVM is per-user and per-shell, so an installation made for root is not automatically available to another SSH account or to a service process.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What NVM changes on a VPS
NVM (Node Version Manager) is a per-user, per-shell version manager for Node.js on POSIX systems. It installs Node releases below the account’s home directory instead of replacing the operating system’s package, then adjusts the current shell’s PATH when you run commands such as nvm use 22. The project describes its purpose as allowing you to “quickly install and use different versions of node via the command line.”
As an Amazon Associate I earn from qualifying purchases.
This scope is useful on a VPS where applications may have different runtime requirements. You can keep several Node versions, select one for a project, and leave a distribution-provided Node installation untouched. The trade-off is that NVM is a shell function rather than a system daemon: a new login shell must load NVM before the nvm command exists, and non-interactive services must load it explicitly or call a selected Node binary by its full path.
Check the VPS before installing
Use the application account
Log in as the account that will deploy and run the application. If your deployment user is app, install NVM while logged in as app, not as root. Each account gets its own NVM directory and shell profile. Installing as root does not make the function or the Node binaries available to another SSH user.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Identify the operating system and shell
The package commands below are for Debian and Ubuntu. Other Linux distributions need their own package manager to install curl. The installer adds its loader to a shell profile, commonly ~/.bashrc; if the account uses another profile, you must source that file instead. Confirm the active shell with echo $SHELL and inspect the profile files used by your SSH login.
Account for architecture and libc
Mainstream Linux distributions generally receive prebuilt Node binaries. On an unsupported CPU architecture or a musl-based system, NVM may fall back to compiling Node from source. A source build can be slow or memory-intensive on a small VPS. Debian and Ubuntu source builds may require the compiler toolchain and OpenSSL headers:
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchessudo apt update
sudo apt install -y build-essential libssl-dev
Decide whether an existing system Node matters
Check for a distribution-managed installation before changing your shell:
command -v node
node -v
You can leave that installation in place while using NVM. Later, nvm use system selects the distribution-provided Node when one is available, and nvm deactivate removes NVM’s version-management changes from the current shell and restores its prior PATH state. Document which installation your service uses so package-manager updates and NVM updates do not silently compete.
Install NVM step by step
1. Install curl on Debian or Ubuntu
Refresh package metadata and install the downloader as the intended deployment user (using sudo where that account is permitted):
sudo apt update
sudo apt install -y curl
If your distribution already has curl, this step simply confirms the prerequisite. Do not run the NVM installer through an account whose home directory is not the one you intend to use.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 112. Run the pinned NVM installer
This command installs the NVM release identified by v0.40.8 and places the files under the account’s home directory (or its configured XDG directory):
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash
The installer attempts to append a loader to the appropriate profile. The loader resolves the NVM directory and sources nvm.sh:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
In a security-sensitive environment, review the downloaded script and pin the installer version in your provisioning configuration rather than silently switching versions on every rebuild. The command above is an official project-hosted script URL; preserve the version in the URL when you need reproducible provisioning.
3. Reload the shell profile
The installer cannot retroactively add a shell function to the process that is already running. Start a new SSH session, or source the profile that the installer edited:
Free tools Windows power users keep installed
One-click scans. No signup required.
source ~/.bashrc
If this account uses a different login profile, source that file instead. Loading the wrong file is a common reason for seeing a successful installer message followed by nvm: command not found.
4. Verify that NVM is loaded
Use command -v, not only which, because NVM is a shell function:
command -v nvm
nvm --version
The first command should print nvm, and the second should print the installed NVM version. If either command fails, stop here and fix profile loading before installing Node; otherwise the Node commands may be installed successfully but unavailable after the next login.
Install and select Node.js
Install the current LTS line
For an application that follows the current long-term-support policy, install the LTS alias:
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
nvm install --lts
NVM downloads a matching binary when one exists for the VPS. If no official binary matches the operating system and architecture, it starts a source build; the build prerequisites described earlier then apply. The first Node version installed by NVM becomes the default for new shells unless you change the alias.
Install a supported major or exact release
Use a major line when your application policy permits updates within that line, or an exact release when lockfiles and deployment controls require it:
nvm install 22
nvm install 22.14.0
The numbers are examples. Choose a version explicitly supported by the application, its dependencies, and your deployment policy. A pinned release improves repeatability, while a major alias allows compatible updates when you deliberately reinstall or update it.
Inspect installed versions and switch
List versions already installed for this account, then select one in the current shell:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →nvm ls
nvm use 22
node -v
npm -v
nvm ls shows the versions available to the account and marks the active one. nvm use 22 changes only the current shell; node -v and npm -v confirm what the application will see in that shell. Run these checks after every version change and in the same account that performs deployment.
Set the version for future login shells
Persist the intended choice with a default alias:
nvm alias default 22
Use an exact release in the alias if that is what your policy requires, for example nvm alias default 22.14.0. Open a new SSH session and run node -v to verify that the alias is being applied. A default alias affects new shells; it does not change an already-running shell that has another version selected.
Use a project version file
An .nvmrc file records the version a project expects. Put the file in the project directory with a value that matches the application’s supported runtime and deployment policy, then run:
Recommended Free Tools
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
cd /path/to/your/project
nvm use
NVM reads the file and selects that version when it is installed. If it is not installed yet, install the required major or exact release first, then rerun nvm use. Keep the file aligned with the application lockfile and test process; an .nvmrc does not install a missing version by itself.
Make NVM work in services, cron, and deployment jobs
Interactive SSH sessions usually read a profile automatically. Service managers, cron, CI runners, and deployment hooks often do not. Because nvm is a shell function, a unit that runs node directly may find the system binary or no binary at all.
Source NVM explicitly
A shell-based start script should load the account’s NVM script before selecting the version:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use 22
exec node /home/app/current/server.js
Adjust the home directory, project path, and version to your account. Test the script under the exact user and execution environment used by the service, not only from your own interactive terminal.
Call the full Node path
For a service definition that should not depend on shell startup files, first select the required version interactively and run command -v node. It returns the full path to the selected binary, such as /home/app/.nvm/versions/node/v22.14.0/bin/node. Use that path in the service’s command and redeploy whenever you intentionally change the pinned version. This avoids relying on an interactive shell, but the path must be updated when the installed release changes.
Check the real execution context
- Run the service as the application user, not as root, unless your service design specifically requires otherwise.
- Confirm the service’s
HOMEpoints to that user’s home directory. - Print or inspect
command -v node,node -v, andnpm -vfrom the start script. - Keep the service’s selected version documented alongside the deployment configuration.
Troubleshoot the common failures
nvm: command not found
- Start a new login shell or reconnect over SSH.
- Source the profile that should contain the loader, commonly
source ~/.bashrc. - Check that
$NVM_DIR/nvm.shexists and is readable. - Run
command -v nvmagain. - If the installer edited the wrong profile, set the
PROFILEenvironment variable to the intended file and rerun the pinned installer.
Do not install NVM repeatedly under different users while troubleshooting. First confirm whoami, echo $HOME, and the profile loaded by that account.
node is found, but it is the wrong version
Inspect the active selection with nvm current, list installed versions with nvm ls, and select the intended one using nvm use. If new shells revert to another release, set or correct nvm alias default, then reconnect. If a service still sees the wrong binary, it is probably not loading NVM and may be using a system package through its own PATH.
Best Value
The installer succeeds but a service cannot find Node
This is normally a non-interactive-shell issue, not a failed installation. Source nvm.sh in the service’s start script or replace node with the full path returned by command -v node under the deployment user. Test the exact unit, cron entry, or runner rather than testing only an SSH terminal.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →NVM starts compiling Node from source
Check the VPS architecture and whether the system uses musl rather than glibc. If the release has no compatible prebuilt binary, install the required compiler and headers; on Debian or Ubuntu, use build-essential and libssl-dev. Allow extra time and memory on a small VPS. If the build fails, read the first compiler or dependency error rather than repeatedly rerunning the installer.
Different users see different installations
NVM’s per-user design is intentional. Compare whoami, echo $HOME, command -v nvm, and command -v node for each account. Install the required version for the account that actually runs the application, and do not assume root’s aliases or home directory apply to an application user.
NVM compared with a distribution package
Neither approach is universally correct. Choose according to how many runtimes you need and how the process starts.
| Concern | NVM | Distribution package or system-wide installer |
|---|---|---|
| Scope | Per user and per shell, normally below the user’s home directory. | System-wide or distribution-managed, subject to administrator permissions. |
| Multiple Node versions | Install and switch among multiple versions for one account. | Usually centers on the system’s selected package version; switching requires package or system changes. |
| Session behavior | Requires the shell loader; new shells need the profile or an explicit source operation. | Usually available through the system PATH without an NVM shell function. |
| Version pinning | Supports exact installs, aliases, and project .nvmrc files. |
Version availability and pinning depend on the distribution repositories or installer. |
| Updates | Install another NVM-managed release and change the alias or project selection. | Use the operating system’s package update workflow. |
| Services and cron | Must source nvm.sh or use a full Node binary path. |
System services can generally resolve the package through the standard PATH. |
Mixing both methods is possible, but document PATH precedence. An interactive shell may use NVM while a service continues to use the distribution binary, producing different Node and npm versions on the same VPS.
Operational and security practices
- Install and run NVM as the least-privileged account that owns the application.
- Review downloaded installation scripts in security-sensitive environments before executing them.
- Pin the NVM installer version in reproducible provisioning instead of relying on an unqualified moving URL.
- Pin the Node major or exact release according to the application’s support policy, and record the choice in deployment configuration.
- Verify
node -vandnpm -vafter provisioning and after every runtime change. - Keep the project’s
.nvmrc, dependency lockfile, service command, and documented runtime policy consistent. - Do not treat the default alias as a service configuration; services need explicit profile loading or a full path.
- Before removing a system Node package, identify scripts or services that still depend on it.
A repeatable deployment checklist
- Log in as the application user and confirm the intended home directory.
- Install
curlwith the VPS distribution’s package manager. - Run the pinned NVM installer and inspect the profile change.
- Reconnect or source the correct profile.
- Confirm
command -v nvmandnvm --version. - Install the LTS line or the exact Node release required by the application.
- Run
nvm ls,nvm use,node -v, andnpm -v. - Set
nvm alias defaultfor interactive login shells. - Add or verify
.nvmrcin the project. - Configure services and automation to source NVM or call the selected binary directly.
- Test from the service’s actual user, shell, home directory, and environment.
The Bottom Line
For a VPS that needs controlled, per-application Node versions, install NVM under the deployment user’s home directory, reload the profile, install a supported LTS or pinned release, and set a default alias. Treat services separately: source nvm.sh or use the full path to the selected Node binary, because an interactive SSH setup does not automatically configure non-interactive processes.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

