NodeJS - 如何使版本6.9.1永久化?

时间:2018-01-09 14:23:34

标签: node.js npm centos

我的CentOS 7.4上有节点v6.12.2。但我必须保持v6.9.1所以当我做它跟随它工作,但重新启动或注销后它不保留。

sudo yum install epel-release
sudo yum install nodejs
sudo yum install npm
npm install forever -g
curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
source ~/.bash_profile
nvm list-remote
nvm install v6.9.1
# nvm use 6.9.1
Now using node v6.9.1

2 个答案:

答案 0 :(得分:2)

nvm alias default 6.9.1

根据NVM Documentation

  

要设置要在任何新shell中使用的默认节点版本,请使用   别名default

nvm alias default node

请注意,这会将最新版本设置为默认值...

所以在你的情况下,你会这样做:

# Install the version that you would like 
nvm install 6.9.1

# Set 6.1.0 (or another version) as default
nvm alias default 6.9.1

在不同版本下运行不同的应用

或者,如果您需要为服务器上的不同应用程序使用不同的版本,则可以在crontab文件中使用以下内容:

@reboot forever start -c /home/your-name/.nvm/versions/node/v6.9.1/bin/node /path/to/app1/server.js

@reboot forever start -c /home/your-name/.nvm/versions/node/v0.11.0/bin/node /path/to/retro/app/server.js    

@reboot forever start -c /home/your-nodenode /path/to/modern/app/server.js

就个人而言,这是我的首选方法,就好像你有20或30个节点应用程序一样,它更容易指定自己的版本,而不仅仅依赖于服务器的当前版本。

答案 1 :(得分:0)

<强>作品! CentOS 7.4

第1步

从NEW回到OLD。

curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
source ~/.bash_profile
nvm list-remote
nvm install v6.7.0
nvm use 6.7.0
Now using node v6.7.0
nvm alias default 6.7.0
whereis node
node: /usr/bin/node /usr/share/node /root/.nvm/v6.7.0/bin/node /usr/share/man/man1/node.1.gz
/root/.nvm/v6.7.0/bin/node --version
v6.7.0

第2步

以服务身份运行。

cat /etc/systemd/system/node-server1.service
[Unit]
Description=Node-Server1
#Requires=After=mysql.service       # Requires the mysql service to run first

[Service]
ExecStart=/root/.nvm/v6.7.0/bin/node /home/www/html/server.js
Restart=always
RestartSec=1                       # Restart service after 10 seconds if node service crashes
StandardOutput=syslog               # Output to syslog
StandardError=syslog                # Output to syslog
SyslogIdentifier=nodejs-server1
#User=<alternate user>
#Group=<alternate group>
Environment=NODE_ENV=production PORT=1337

[Install]
WantedBy=multi-user.target

第3步

systemctl enable node-server1.service
systemctl start node-server1.service
tail -f /var/log/messages