当前位置: 首页 > news >正文

非 root 用户全局安装和配置 NodeJS

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

        主要针对 Linux 非 root 用户,在没有 root 权限下如果安装及配置 NodeJS(注:这里安装的是官网上已经编译好的二进制包)。

        首先,到 NodeJS 的官网(https://nodejs.org/en/download/)下载对应的已经编译好的二进制包。

        144633_JEFB_3375733.png

 

        这里以 CentOS7 32bit 为例,安装 NodeJS 的 LTS 版本:

        1. 下载 Linux Binaries 64bit 版本:


curl -o node-v8.9.4-linux-x64.tar.xz https://nodejs.org/dist/v4.4.2/node-v4.4.2-linux-x86.tar.xz

        2. 下载好的二进制压缩包解压至指定的安装目录(这里以~/tools/nodejs 为例)


mkdir -p ~/tools/nodejs

tar -xJf node-v8.9.4-linux-x64.tar.xz --no-wildcards-match-slash \
--anchored --exclude */CHANGELOG.md --exclude */LICENSE --exclude */README.md \
--strip 1 -C ~/tools/nodejs

        注:如果出错并提示 xz: Cannot exec: No such file or directory,可能是未安装 xz 解压工具。
这里,你可以重新下载 gzip 格式的压缩包(https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.gz),然后将上面命令中的 -xJf 换成 -xzf

        当然,也可以安装 xz ,如下:


# 没有xz这个命令,发现还需要按照这样一个工具包.于是,下了这样一个包http://tukaani.org/xz/ 要选择.bz2的,
# 别选.xz的,否则还是解压不了

# 这个包很容易解压
 tar -jxvf xz-5.0.3.tar.bz2

# 解压后一定要进入解压后的文件目录输命令

cd xz-5.0.1

# 接下来大家一定都用这条命令

./configure --prefix=/usr/local/xz

# 然后就进行make了
# 可是我这又有问题了,在configure时就是各种找不到。没有gcc,于是又进行安装
# 于是输入以下命令

yum install update  -y
yum install upgrade -y


# 这个过程有点久,等完成后,再安装gcc

yum install gcc

# 这样安装好后,就可以重复上述步骤了
# 再次进入到存放xz解压工具的文件目录

# 进行如下命令

cd xz-5.0.3/
./configure
make
make install

# 之后就可以愉快地解压tar.xz文件啦

        3. 编辑 ~/.bash_profile 或者 ~/.profile,将~/tools/nodejs/bin 添加到环境变量 PATH 中:


export PATH="${PATH}:${HOME}/tools/nodejs/bin" 

# 注1:如果配置文件中已经有了 PATH 变量,可以在其后面添加 ${HOME}/apps/bin。
# 注2:如果系统里已经安装了其他版本的 # node,可以将 ${HOME}/tools/nodejs/bin 放在 ${PATH} 的前面,
# 防止使用系统使用的版本,而不是需要安装的版本

        4. 现在可以使用 source ~/.bash_profile 或 source ~/.profile(如果修改的是这个配置文件),使上面的修改生效。 

        154716_atDJ_3375733.png
        这时,键入 node -v 如果可以看到刚刚安装的 node 的版本号,表明已经安装成功了。

        5. 配置 npm,在 shell 中执行以下命令(如果输入 npm -v 可以看到 npm 的版本号,该步骤可忽略):
 

mkdir -p ~/tools/nodejs/etc
echo 'prefix = ${HOME}/tools/nodejs' > ~/tools/nodejs/etc/npmrc

        6. 通过配置 npmrc 到当前用户下

        如果系统已经安装了 NodeJS,在使用 npm -g 时,又不想使用 root 权限将 package 安装到 /usr 下面,可以通过配置 npmrc 到当前用户下。以安装到 ~/.npm_packages 下为例:

        首先将以下内容添加到 ~/.npmrc 下:


echo 'prefix = ${HOME}/.npm_packages' > ~/.npmrc 

        然后将 ${HOME}/.npm_packages/bin 添加到环境变量 PATH 里,


export PATH="${PATH}:${HOME}/.npm_packages/bin"  


        当环境变量更新后,就可以使用 npm -g install <package> 将package 安装到 ~/.npm_packages/lib 下面了。

        7. 安装gulp


pm  install -g gulp
gulp -v
注意:若gulp –v不显示版本号,看nodejs是否配置了环境变量

           155558_2R34_3375733.png

 

 

转载于:https://my.oschina.net/u/3375733/blog/1820569

相关文章:

  • MYSQL性能优化的最佳20+条经验
  • 6.kotlin安卓实践课程-用kotlin写第一个activity对应P层
  • MHA源码分析——环境部署
  • 你需要了解的23种JavaScript设计模式
  • 2018-06-01Linux学习
  • 调查:市面上你知道有哪几款APP支持这个功能?
  • Python将SQL server 数据库导入到mongoDB数据库中
  • 多线程 - wait、notify
  • STP的算法与PVST+实现负载均衡
  • linux用户和权限详解
  • python---list列表、元组
  • 回归初始互联网手机核心档位初心 荣耀Play性能真旗舰再出发
  • 高性能服务器开发基础系列 (七)——开源一款即时通讯软件的源码
  • Docker命令备忘录
  • html+css+js 快速打造进度条
  • 【RocksDB】TransactionDB源码分析
  • gcc介绍及安装
  • Java深入 - 深入理解Java集合
  • Kibana配置logstash,报表一体化
  • maya建模与骨骼动画快速实现人工鱼
  • Python打包系统简单入门
  • spring boot 整合mybatis 无法输出sql的问题
  • Vue官网教程学习过程中值得记录的一些事情
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 开源SQL-on-Hadoop系统一览
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #DBA杂记1
  • #if和#ifdef区别
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (02)Hive SQL编译成MapReduce任务的过程
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)Linux下编译安装log4cxx
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • *** 2003
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET/C# 使窗口永不获得焦点
  • /etc/motd and /etc/issue
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • []C/C++读取串口接收到的数据程序
  • [1204 寻找子串位置] 解题报告
  • [android] 练习PopupWindow实现对话框
  • [Android]通过PhoneLookup读取所有电话号码
  • [ANT] 项目中应用ANT
  • [C语言]——柔性数组
  • [Django ]Django 的数据库操作
  • [halcon案例2] 足球场的提取和射影变换