centos7 安装nodejs

nodejs 官方地址:https://nodejs.org/en/download/

Linux Binaries (x64) 安装

这里是centos,不是Linux ARM系统的,下载后是一个14M的tar包,node-v12.18.2-linux-x64.tar.xz

# 解压
[baidu@yfafnqeu ~]$ tar xvf node-v12.18.2-linux-x64.tar.xz
# 重命名(或者移动到喜欢的位置)
[baidu@yfafnqeu ~]$ mv node-v12.18.2-linux-x64 /usr/local/
# 设置环境变量(普通用户是.bash_profile/root是/etc/profile)
[baidu@yfafnqeu ~]$ vi .bash_profile
#添加一行
export PATH=$PATH:/usr/local/node-v12.18.2/bin
[baidu@yfafnqeu ~]$ source .bash_profile
[baidu@yfafnqeu ~]$ node -v
V12.18.2
[baidu@yfafnqeu ~]$ npm -v
6.14.5

Linux Source Code (源码编译)安装

下载后是一个50M的tar包,node-v12.18.2.tar.gz

# 解压
[root@baidu1 opt]# tar -xvf node-v12.18.2.tar.gz 
[root@baidu1 opt]# cd node-v12.18.2/
#配置要求,会提示需要安装的依赖包
[root@baidu1 node-v12.18.2]# ./configure
WARNING: failed to autodetect C++ compiler version (CXX=g++)
WARNING: warnings were emitted in the configure phase
INFO: configure completed successfully
#搜索缺少的依赖包
[root@baidu1 node-v12.18.2]# yum search c++

[baidu@yfafnqeu node-v12.18.2]$ yum -y install gcc gcc-c++ kernel-devel
#编译 时间会比较长,我的用了20分钟
[baidu@yfafnqeu node-v12.18.2]$ make && make install

如果./configure会提示缺少的依赖,进行yum install

yum install gcc-c++.x86_64 -y

校验

node -v

到此编译完成。 

  • 我在编译v12.18.x的时候会出现error: #error "SSE4.1 instruction set not enabled",这个错是没有找到解决办法,可以尝试换个包,比如v12.2,环境不变可以正常编译通过
  • 源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决

 查找最新的动态库

[root@baidu1 usr]# find -name "libstdc++.so.6*"
./lib64/libstdc++.so.6
./lib64/libstdc++.so.6.0.19
./lib64/libstdc++.so.6.0.26
./share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
./share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
./share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
./local/lib64/libstdc++.so.6.0.26
./local/lib64/libstdc++.so.6
./local/lib64/libstdc++.so.6.0.26-gdb.py
./local/gcc-build-9.1.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.26
./local/gcc-build-9.1.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
./local/gcc-build-9.1.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.26
./local/gcc-build-9.1.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
./local/gcc-build-9.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.26
./local/gcc-build-9.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
[root@baidu1 usr]# 

给动态库更新外连接

[root@baidu1 usr]# cd ./local/gcc-build-9.1.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/
[root@baidu1 .libs]# ll
total 106276
-rw-r--r--. 1 root root    50600 Aug  6 11:21 compatibility-atomic-c++0x.o
-rw-r--r--. 1 root root   145192 Aug  6 11:21 compatibility-c++0x.o
-rw-r--r--. 1 root root    21704 Aug  6 11:21 compatibility-chrono.o
-rw-r--r--. 1 root root    37912 Aug  6 11:21 compatibility-condvar.o
-rw-r--r--. 1 root root     8416 Aug  6 11:21 compatibility-debug_list-2.o
-rw-r--r--. 1 root root    10512 Aug  6 11:21 compatibility-debug_list.o
-rw-r--r--. 1 root root   194376 Aug  6 11:21 compatibility.o
-rw-r--r--. 1 root root   134904 Aug  6 11:21 compatibility-thread-c++0x.o
-rw-r--r--. 1 root root 45366082 Aug  6 11:21 libstdc++.a
-rw-r--r--. 1 root root 45141632 Aug  6 11:21 libstdc++convenience.a
lrwxrwxrwx. 1 root root       26 Aug  6 11:21 libstdc++convenience.la -> ../libstdc++convenience.la
lrwxrwxrwx. 1 root root       15 Aug  6 11:21 libstdc++.la -> ../libstdc++.la
-rw-r--r--. 1 root root      965 Aug  6 11:21 libstdc++.lai
lrwxrwxrwx. 1 root root       19 Aug  6 11:21 libstdc++.so -> libstdc++.so.6.0.26
lrwxrwxrwx. 1 root root       19 Aug  6 11:21 libstdc++.so.6 -> libstdc++.so.6.0.26
-rwxr-xr-x. 1 root root 17689416 Aug  6 11:21 libstdc++.so.6.0.26
[root@baidu1 .libs]# cp libstdc++.so.6.0.26 /usr/lib64/
[root@baidu1 .libs]# cd /usr/lib64/
[root@baidu1 lib64]# ln -s libstdc++.so.6.0.26 libstdc++.so.6

再次make 就可以了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值