解决在Ubuntu安装nodejs,roslibjs时出现的问题
前言
在机器人公司做ROS开发的工作,组里做UI的大佬跑了,最近急着复用部署他之前的code,只能硬着头皮学习做roslibjs相关的知识。这篇文章记录了安装时踩得一些坑,希望可以帮助到像我一样的新手。
正文
安装nodejs和npm
1. 使用sudo apt-get install
Google上大部分推荐的方法是直接安装Ubuntu系统库里提前建好的二进制版本,如下
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
使用如下指令查看安装的版本
nodejs -v
npm -v
较新的版本好像不需要上面第三行的指令,安装nodejs时,默认安装了npm。不过上面的指令这个只能下载v4.2.6,很老旧的一个版本。
如果要安装roslibjs,建议安装v8以上的版本。安装更高的版本,需要的命令如下
sudo apt-get update
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
sudo apt-get install npm
把第三行8改成其他的数字可以安装其他的版本。
但是亲测,用上面的方法在两个平台上遇到了不同的问题。
第一台电脑的问题:上面的命令找不到nodejs的库。
第二台电脑的问题:只能安装到v4.2.6的版本,无法安装更高的版本。
尝试了很久,依然没找到直接的解决方案,好像大部分人都是这样就能直接建的,本人有点点背。于是换到了下面的方法。
2.使用nvm安装nodejs
使用如下的指令
sudo apt-get update
sudo apt-get install build-essential libssl-dev
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh -o install_nvm.sh
bash install_nvm.sh
上面的指令会安装一个 ~/.nvm 的文件夹,并且加了一些配置信息在 ~/.bashrc 或者是 ~/.profile 文件下,一定记得重新开启一个terminal加载配置信息。
使用下面的指令安装想要的nodejs版本,比如说v8:
nvm install 8
nvm use 8
解决问题撒花。每个nodejs版本会自带一个npm。
安装roslibjs
上一步安装顺利的话,这一步就很简单。
git clone https://github.com/RobotWebTools/roslibjs.git
cd /path/to/roslibjs
npm install
上面指令运行完后,按照terminal的反馈可能要修复一些包和依赖问题,主要是下面两行指令:
npm audit fix
npm audit fix --force
搞定收工。
更多信息参考reference.