一、背景:
- 背景:系统centos7.3
- 需求:
- gcc7.3
- node8.9.4
- 部署geoc_tjj项目
二、安装步骤
#基本环境准备好的情况下(搭建好本地yum源):
#1、上传 gcc-7.3.0.tar.gz 到/usr/local/src下
#安装gcc7.3
tar zxf gcc-7.3.0.tar.gz
cd gcc-7.3.0
./configure --disable-multilib --prefix=/usr
make -j 8 && make install #特别慢
#2、安装node基本环境
#上传node-v8.9.4.tar.gz到/usr/local/src/
tar zxvf node-v8.9.4.tar.gz
cd node-v8.9.4
./configure --prefix=/usr/local/node/8.9.4
make -j 8 && make install
#添加到环境变量:
echo "export PATH=$PATH:/usr/local/node/8.9.4/bin" >>/etc/profile
source /etc/profile
#3、上传geoc_tjj.tar.gz 到/usr/local/下,安装geoc_tjj.tar.gz
tar zxf geoc_tjj.tar.gz
cd geoc_tjj
npm start
三、测试
在浏览器输入:
http://172.16.100.136:8002/api/v1/statistics/geojson?code=110108001001&op=get
出现如下界面说明部署成功!
四、遇到的问题
1、问题描述:
cd /usr/local/geoc_tjj/
npm start 启动时报错:
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found
截图如下:
2、原因:这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。
3、解决步骤:
检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
/usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-7.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-7.3.0 是升级gcc时的输出目录。
将上面的最新动态库,libstdc++.so.6.0.24复制到/usr/lib64 目录下:
cp /usr/local/src/gcc-7.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 /usr/lib64/
删除旧连接指向,创建新链接指向。
cd /usr/lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.24 libstdc++.so.6
npm start成功!