zoukankan      html  css  js  c++  java
  • Centos6.5安装nodejs13

    下载nodejs13二进制压缩包,解压后运行./node提示缺库文件。在网上面试并试了好多次后,记录一下。

    缺失库文件的错误提示:

    1.  
      [root@localhost bin]# ./node
    2.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./node)
    3.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./node)
    4.  
      ./node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./node)
    5.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./node)
    6.  
      ./node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by ./node)
    7.  
      ./node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./node)
    8.  
      ./node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./node)

    一共缺两种:libstdc++.so.6,libc.so.6

    去相应的路径看看了看,其实也不算是缺文件,应该说是版本过低,需要升级。

    升级的时候需要注意两点:足够的内存大小和硬盘空间。

    我是在虚拟机上安装的,一开始不知道,虚拟机只给了8G的硬盘的1G的内存,安装过程中各报了一次错。把内在调到4G,硬盘调到20G后,就正常了。空间要求不高,一般情况下也不会出现这个问题。

    在make过程中,会报错缺少c和c++编译器。使用yum进行安装。

    yum install gcc

    yum install gcc-c++

    1、先安装libc.so.6

    这个是按照「黑色外套」的博客教程去装的。https://blog.csdn.net/qq708986022/article/details/77896791

    1)下载glibc2.17:
    wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz

    2)解压: 
    tar -xzf glibc-2.17.tar.gz

    3)创建build目录:
    mkdir build

    4)进入build目录编译glibc:
    cd build
    ../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    make -j4
    make install

    注:如果执行configure的时候报configure: error: support for --no-whole-archive is needed,则把configure命令改成
    ../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include  (我用的这个命令)


    5)查看GLIBC版本
    执行 strings /lib64/libc.so.6|grep GLIBC 查看版本已经支持GLIBC_2.17
    [root@zhx-tserver2 build-2.17]# strings /lib64/libc.so.6|grep GLIBC
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_2.15
    GLIBC_2.16
    GLIBC_2.17
    GLIBC_PRIVATE
     

    重新运行一下./node

    1.  
      [root@localhost bin]# ./node
    2.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./node)
    3.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./node)
    4.  
      ./node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./node)
    5.  
      ./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./node)

    libc.so.6的not found已经没有了。

    注意:libc.so.6更新失败的时候,会导致ls、cd这种普通命令失效,救急的办法是在命令前先导入老版本:

    $ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so 此项是系统升级前的版本

    2. 安装libstdc++so.6

    这个是按照xiaojun11-的博客安装的。https://blog.csdn.net/xiaojun111111/article/details/86492556

    1.获取gcc4.8.5的源码包(不同的版本,基本是只需要换掉后面的版本号即可更换下载地址)
    wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
    2.解压压缩包
    tar -jxvf gcc-4.8.5.tar.bz2
    3.进入解压后的目录
    cd gcc-4.8.5
    4.下载、配置和安装需要的依赖库
    ./contrib/download_prerequisites
        这个脚本文件会自动帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

      安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录(文件不大,总共只有几MB,请耐心等待下载)。
    5.直接在当前目录下创建一个目录,存放编译后的文件。
    mkdir gcc-build-4.8.5
    6.进入这个目录来编译
    cd gcc-build-4.8.5
    7.生成Makefile文件,准备编译整个项目(gcc4.8.5)
    ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
        前面的..表示会进入到上一层目录执行configure。所以gcc-build-4.8.5目录必须在gcc-4.8.5里面创建,也就是我们这样创建的。如果你想自己定义gcc-build-4.8.5目录的位置,你要处理好这里的路径问题。不建议处理,一个安装过程而已,不必折腾,就按照上述方法弄就行了。
    8.编译gcc4.8.5的源码,非常耗时,时间决定于你的机器的性能。
    make
       不建议使用make -j4 方式编译,很可能会失败。-j4选项是make对多核处理器的优化。虽然直接make速度慢点,只要不出错,总体上还是可以接受的。
    9.安装gcc4.8.5(非root用户要在前面加sudo)
    make install
    10.重启系统,让gcc4.8.5生效
    reboot
    11.查看gcc和g++的版本
    gcc --version
    g++ --version
        提示为:
    gcc (GCC) 4.8.5
    g++ (GCC) 4.8.5
        就表示已经安装成功,并且生效了。
        特别注意,第10步很容易被忽略。如果不重启系统,查看的版本还是之前的老版本,会让你误认为安装没有成功的

    替换系统低版本gcc

    系统自带低版本gcc文件位置为/usr/bin/gcc/usr/bin/lib,此时需要将这两个部分删掉,或者后缀加上.bak,然后通过建立软连接的方式替换系统默认位置的gccc++g++文件。

     
    1. mv /usr/bin/c++ /usr/bin/c++.bak

    2. ln -s /usr/local/bin/c++ /usr/bin/c++

    3. mv ./g++ ./g++.bak

    4. ln -s /usr/local/bin/g++ /usr/bin/g++

    5. mv ./gcc ./gcc.bak

    6. ln -s /usr/local/bin/gcc /usr/bin/gcc

    替换系统gcc动态链接库

    strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    

    输出结果如下, 可以看出,gcc的动态库还是处于旧版本,说明生成的动态库没有替换旧版本gcc的动态库。

     
    1. GLIBCXX_3.4

    2. GLIBCXX_3.4.1

    3. GLIBCXX_3.4.2

    4. GLIBCXX_3.4.3

    5. GLIBCXX_3.4.4

    6. GLIBCXX_3.4.5

    7. GLIBCXX_3.4.6

    8. GLIBCXX_3.4.7

    9. GLIBCXX_3.4.8

    10. GLIBCXX_3.4.9

    11. GLIBCXX_3.4.10

    12. GLIBCXX_3.4.11

    13. GLIBCXX_3.4.12

    14. GLIBCXX_3.4.13

    查找编译gcc时生成的最新动态库。

    find / -name "libstdc++.so*"
    

    列出了新版的gcc动态链接库位置。

    /usr/local/lib64/libstdc++.so.6.0.19
    

    将上面的最新动态库libstdc++.so.6.0.19复制到/usr/lib64目录下,并重新建立软连接。

     
    1. cp /usr/local/lib64/libstdc++.so.6.0.19 /usr/lib64

    2. cd /usr/lib64/

    3. rm -f ./libstdc++.so.6

    4. ln -s libstdc++.so.6.0.18 libstdc++.so.6

    再次查看gcc版本,以下结果表示动态库升级完成。

     
    1. ...

    2. GLIBCXX_3.4.13

    3. GLIBCXX_3.4.14

    4. GLIBCXX_3.4.15

    5. GLIBCXX_3.4.16

    6. GLIBCXX_3.4.17

    7. GLIBCXX_3.4.18

    8. GLIBCXX_3.4.19

    node版本下载:

    https://npm.taobao.org/mirrors/node/

    cd /usr/local/src

    tar xzf node-v13.10.1-linux-x64.tar.gz

    mv node-v13.10.1-linux-x64 node-v13.10.1

    mv node-v13.10.1 /usr/local/

    ln -s /usr/local/node-v13.10.1/bin/node /usr/local/bin/node

    ln -s /usr/local/node-v13.10.1/bin/npm /usr/local/bin/npm

    设置淘宝源
    npm config set registry https://registry.npm.taobao.org

    //在NPM 中安装
    npm install -g yarn

    ln -s /usr/local/node-v13.10.1/bin/yarn /usr/local/bin/yarn

    ln -s /usr/local/node-v13.10.1/bin/yarnpkg /usr/local/bin/yarnpkg

    设置淘宝源
    yarn config set registry https://registry.npm.taobao.org





  • 相关阅读:
    什么是面向对象(OOP)
    Java虚拟机(JVM)你只要看这一篇就够了!
    ES6中新增的Object.assign()方法详解
    微信小程序_专题_脚本之家(小程序全部知识点)
    微信小程序 生命周期详解
    vue 阻止事件冒泡,捕获方法
    Java必备常见单词
    JS夸页面通信极简方案&纯前端实现文件下载
    vue keep-alive以及activated,deactivated生命周期的用法
    JVM实用参数 内存调优
  • 原文地址:https://www.cnblogs.com/eos666/p/13956732.html
Copyright © 2011-2022 走看看