NodeJS
Summary: Author: 张亚飞 | Read Time: 3 minute read | Published: 2015-08-08
Filed under
—
Categories:
DevOps
—
Tags:
Linux,
Server,
Software,
DevOps,
Node.js 管理相关
在Ubuntu 安装 Node.js
安裝 Node.js
起始这个步骤很重要,而且如果参考大部分教学就会踩到雷.主要原因是如果用上面那篇的方法,不会自动帮你做好软连接,后续很容易出現莫名其妙的问题.
sudo apt update
sudo apt install nodejs-legacy
直接用 nodejs-legacy 即可.這個会自动建立软连接,可以避免不少比较旧的库的问题.
在 安装node的时候,安装位置为 /usr/local/bin/node ,但这个位置是需要root权限的,而截图上提示的错误就是你的权限不 够,node没有安装成功.如果你用源码编译安装,记得最后安装时加sudo执行.而且你在执行nodejs的时候,截图也提示你了,你的nodejs没 有安装,但你可以使用 sudo apt install nodejs 这个命令来安装,这是因为你之前添加了ppa才可以这样安装.
另 外,我想补充的是,你所用的ppa的方法,已经是很旧的了,即使安装成功也是很老版本的,这个ppa已经很久不更新了,现在ubuntu软件仓库就已经有 node了,所以你可以先用
sudo apt-add-repository -r ppa:chris-lea/node.js-devel
删除这个ppa,然后安装仓库里的node:
sudo apt install nodejs
如果你发现仓库里的nodejs版本不够高,可以更新一下仓库和软件版本:
sudo apt update
sudo apt upgrade
你也可以用源代码编译安装node,也很简单,下载node的源代码包,解压,进入目录执行:
./configure && make && sudo make install
补充:
为什么执行 node -v 没有输出?
Ubuntu 的仓库里面,已经存在一个叫node的软件包了,可以执行aptitude search node`查看,这是一个先于nodejs存在的软件名,已经被用了,所以ubuntu只能把用于js开发的这个node改名叫nodejs,如果系统已 经安装此软件,执行node -v并非nodejs的node,它跟nodejs一点关系也没有,它的-v参数是不显示任何东西的. node 还是 nodejs ?
用 apt install nodejs 方法安装的,或是ppa方法安装的,命令都应该叫 nodejs,应该使用nodejs -v来测试.不过如果使用源代码的方式编译安装的(默认安装到 /usr/local/bin ,除非指定prefix参数),也叫node,这个node是 真正的nodejs的node,所以为了避免与ubuntu仓库中的node引起混淆,建议安装后,把node改名为nodejs
windows下是 node -v;ubuntu下是 nodejs -v
nvm
建议使用版本管理工具nvm,来安装Node,因为可以自由切换版本
Window 下安装 nvm
nvm-windows 下载安装文件 nvm-setup.zip
nvm 将 nodejs 安装到目录 C:\Users\yafei\AppData\Roaming\nvm\v5.5.0 使用 npm install -g * 将包安装到目录 C:\Users\yafei\AppData\Roaming\nvm\v5.5.0\node_modules
window 下 nvm 常用命令
nvm list
nvm install latest
nvm on: Enable node.js version management.
nvm off: Disable node.js version management (does not uninstall anything).
nvm proxy [url]: Set a proxy to use for downloads. Leave [url] blank to see the current proxy. Set [url] to "none" to remove the proxy.
nvm uninstall <version>: Uninstall a specific version.
nvm use <version> [arch]:
Ubuntu 下安装 nvm
nvm 使用 安装脚本安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
. ~/.nvm/nvm.sh
Ubuntu 下 nvm 常用命令
nvm ls-remote // 列出所有可用版本
nvm install latest
安装 npm
sudo apt install npm
npm常用命令
npm install <name>安装nodejs的依赖包
例如 npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6
npm install <name> -g 将包安装到全局环境中
但是代码中,直接通过require()的方式是没有办法调用全局安装的包的.全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令
npm install <name> --save 安装的同时,将信息写入package.json中
项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包
这样代码提交到github时,就不用提交 node_modules 这个文件夹了.
npm init 会引导你创建一个package.json文件,包括名称. 版本. 作者这些信息等
npm remove <name>移除
npm update <name>更新
npm ls 列出当前安装的了所有包
npm root 查看当前包的安装路径
npm root -g 查看全局的包的安装路径
npm help 帮助,如果要单独查看install命令的帮助,可以使用的npm help install
升级npm到最新版本,使用以下命令
npm install npm@latest -g
国内npm安装nodejs modules失败的几个解决方案
npm config set proxy="http://127.0.0.1:8087"//设置代理地址 http://www.xxxx.com:port格式
npm config set registry="http://registry.npmjs.org"//设置npm源地址
nodejs国内npm安装nodejs modules失败的几个解决方案
参考列表
Ubuntu 正确安装 Node.js 和 Npm Ubuntu下装nodejs的问题
错误及常用命令
清除缓存重新安装
rm -rf node_modules npm cache clean npm install
在 Ubuntu 下安装 converse.js 频繁出现以下错误
Please report this full log at https://github.com/Medium/phantomjs
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
npm ERR! weird error 1
npm ERR! not ok code 0
make: *** [stamp-npm] Error 1
网友提示需要安装 nodejs
sudo apt install nodejs-legacy
但是执行此命令提示我已安装
- Setup with Ubuntu
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
- Then install with Ubuntu:
sudo apt install --yes nodejs
- If you get node: command not found chances are likely you need to link your binary:
sudo ln -s /usr/bin/nodejs /usr/bin/node
参考 Installing Node.js via package manager
重新执行命令安装出现如下错误
Failed at the phantomjs@1.9.19 install script 'node install.js'.
执行命令
npm config set strict-ssl false
Failed at the phantomjs@1.9.19 install script ‘node install.js’.
安装 nrm – 快速切换 NPM 源 (附带测速功能)
npm install -g nrm
常用命令
列出可选的源
$ nrm ls
* npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - http://registry.npm.taobao.org/
eu ----- http://registry.npmjs.eu/
au ----- http://registry.npmjs.org.au/
sl ----- http://npm.strongloop.com/
nj ----- https://registry.nodejitsu.com/
切换源到 taobao
$ nrm use taobao
Registry has been set to: http://registry.npm.taobao.org/
增加源 你可以增加定制的源,特别适用于添加企业内部的私有源.私有源可以使用cnpmjs架设.
nrm add <registry> <url> [home]
删除源
nrm del <registry>
测试速度 你还可以通过 nrm test 测试相应源的响应时间.
例如,测试官方源的响应时间:
$ nrm test npm
npm ---- 1328ms
测试所有源的响应时间:
$ nrm test
npm ---- 891ms
cnpm --- 1213ms
* taobao - 460ms
eu ----- 3859ms
au ----- 1073ms
sl ----- 4150ms
nj ----- 8008ms
注意,为了取得较准确的结果,可以考虑多次测试取平均值.
安装 Bower 包管理工具
sudo npm install bower -g
bower 常用命令
bower install
bower update
安装 mongo-express
在安装 mongo-express 的时候,需要服务器有 nodejs 环境
mongo-express 是一个基于 Node.js 和 express 的开源的MongoDB Web管理界面.
主要功能:
连接多个数据库
分别连接和认证独立的数据库
认证为管理员查看所有数据库
数据库 黑名单/白名单
集合(collections)的增删查改
文档(documents)的增删查改
在文档中使用BSON数据类型
限制
被编辑的文档必须有document._id属性
无GridFS的支持(有可能成为计划功能)
二进制BSON数据类型没有经过测试
JSON文档是通过JavaScript虚拟机解析,所以可以在服务器上的Web界面执行恶意JavaScript代码.
安装:
npm install mongo-express
或者全局安装:
npm install -g mongo-express
或者从Github上直接拿下来解压后运行 npm install 即可
配置:
复制或者把 config.default.js 改名为 config.js 的新文件.
在配置文件中填写 MongoDB 的连接等你想更改的信息.
启动运行:
nodejs app
查看 http://localhost:8081 或者你在配置中写的 URL/port .
在Ubuntu下执行启动命令会提示如下错误
yzhang@coamn:~/ServerCoam/Tools/MongoDB$ node app
The program 'node' can be found in the following packages:
* node
* nodejs-legacy
Ask your administrator to install one of them
提示没有安装node程序,需要先检查是否已安装nodejs运行环境
Thu Sep 24 12:58:16 yzhang@coam:~/ServerCoam/Tools/MongoDB$ nodejs -v
v0.10.25
然后执行命令
nodejs app
Comments