发现阿里云的云主机可以按最短一周时常购买了,以后做测试环境,花点小钱买台短期主机做测试的成本又降低了(虽然ECS总体还是涨价了)。这次想尝试一下在最新的CentOS下安装node.js会不会踩坑,于是开干。
在失败了多次,东拼西凑了很多文章和教程后,终于把nodejs(8.7.0)给装上了,下面整理所用命令行以及过程。
安装开发必备环境
yum groupinstall "Development Tools" yum install glibc-static libstdc++-static
安装适合版本的gcc(CentOS7.4自带4.8.5版的gcc,但是当前版本nodejs需要4.9.4以上版本,所以需要升级gcc,这是一个坑)
先下载
cd /usr/local/src wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
解压(解压前先安装bzip2压缩工具)
yum -y install bzip2 tar -jxvf gcc-5.4.0.tar.bz2
编译安装(make大约需要一个多小时)
cd gcc-5.4.0 ./contrib/download_prerequisites mkdir build cd build ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib make
安装
make install
编译完毕后,如果直接安装node,还是会报错(又是一个坑)。应该先把升级的动态库手动复制的过来并且软连接指向最新动态库
find / -name "libstdc++.so*"
cp /usr/local/src/gcc-5.4.0/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64 cd /usr/lib64 rm -rf libstdc++.so.6 ln -s libstdc++.so.6.0.21 libstdc++.so.6
重启主机,检查gcc是否升级
gcc -v
得到以上反馈后就可以放心的安装node了
下载解压node
cd /usr/local/src wget https://npm.taobao.org/mirrors/node/v8.7.0/node-v8.7.0.tar.gz tar xvf node-v8.7.0.tar.gz
编译(半个多小时)
cd node-v8.7.0 ./configure make
安装
make install
总结一下踩过的坑:
1. 必须升级GCC,网上教程提的最多的是5.4.0,我也是编译这一版安装成功。尝试安装更新版的GCC编译没有成功,原因未知(看不懂报错信息…);
2. 必须更新动态库,手动复制文件libstdc++.so.6.0.21并更新软链接;
3. 尝试安装更新版本的nodejs比如8.11.3,编译还是失败。安装8.7.0则成功,原因还是不清楚…
4. 网上各种博客教程是有很多了,但是无一完整,全部有错…是的,我没说错,浪费了很多时间。本文基于阿里云CentOS7.4镜像安装成功,也不代表在别的Linux系统能安装成功,完全是一次瞎子式的摸索。
问了有经验的朋友,其实自己编译并没有太多好处,尤其是在自己对系统没有深入了解的情况下。下次根据官方指引安装吧…
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/1904.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。