Installing Node.js and npm on CentOS 7
NodeSource is a company dedicated to providing enterprise-grade Node support and they maintain a consistently-updated Node.js repository for Linux distributions.
To install Node.js and npm from the NodeSource repositories on your CentOS 7 system, follow these steps:
1. Add NodeSource yum repository
The current LTS version of Node.js is version 10.x. If you want to install version 8 just change setup_10.x
with setup_8.x
in the command below.
Run the following curl
command to add the NodeSource yum repository to your system:
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
2. Install Node.js and npm
Once the NodeSource repository is enabled, install Node.js and npm by typing:
sudo yum install nodejs
When prompted to import the repository GPG key, type y
, and press Enter
.
3. Verify the Node.js and npm Installation
To check that the installation was successful, run the following commands which will print the Node.js and npm versions.
Print Node.js version:
node --version
v10.13.0
Print npm version:
npm --version
6.4.1
Install CMake
Check libstdc++
编译CMake 3.18需要GLIBCXX_3.4.24
版本。运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
如果输出信息中不包含GLIBCXX_3.4.24
,例如输出结果如下:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
从以上输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。
执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
输出如下:
/tmp/obj.gcc-9.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/tmp/obj.gcc-9.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/tmp/obj.gcc-9.3.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/tmp/obj.gcc-9.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/tmp/obj.gcc-9.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/tmp/obj.gcc-9.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/tmp/obj.gcc-9.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/tmp/obj.gcc-9.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/tmp/obj.gcc-9.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.28
/usr/local/lib64/libstdc++.so.6.0.28-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/local/lib64/
是升级gcc时的输出目录。
将上面的最新动态库libstdc++.so.6.0.28复制到/usr/lib64目录下:
cp /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64
复制后,修改系统默认动态库的指向,即:重建默认库的软连接。
切换工作目录至/usr/lib64:
cd /usr/lib64
删除原来软连接:
rm -rf libstdc++.so.6
将默认库的软连接指向最新动态库:
ln -s libstdc++.so.6.0.28 libstdc++.so.6
默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
Download CMake from: https://cmake.org/download/
wget https://cmake.org/files/v3.18/cmake-3.18.1.tar.gz
Compile from source and install
tar zxvf cmake-3.*
cd cmake-3.*
./bootstrap --prefix=/usr/local
make -j$(nproc)
make install
Validate installation
cmake --version
cmake version *.*.*
CMake suite maintained and supported by Kitware (kitware.com/cmake).