Node.js ,通常简称为Node,是一个变乱驱动 I/O 服务端 JavaScript 环境,基于 Chrome V8引擎,具备速率快、性能强等特点,可用于搭建各类网络应用,及作为小程序后端服务环境。npm 和 npx 都是和 Node.js 相关的命令行工具,它们在 JavaScript 开发中扮演偏重要的脚色。
npm:1、答应开发者在项目中安装、管理和共享JavaScript包和模块;2、可以主动处理项目依赖,确保全部必要的包都被安装,并且版本兼容;3、npm能够管理包的版本,支持语义版本控制,使得依赖管理更加灵活和可靠;4、答应在package.json文件中定义脚本,可以通过npm命令运行这些脚本;5、开发者可以通过npm发布自己的包,供其他开发者使用。
npx:1、一次性命令实行,答应开发者直接运行Node.js包而不必要先安装它们;2、可以在不全局安装包的环境下实行命令;3、npx还可以用来实行本地安装的命令行工具,而不必要在package.json中定义脚原来调用它们。4、可以轻松地在不同的Node.js版本之间切换。
centos:CentOS Linux release 7.9.2009 (Core),最小化安装系统。
python:Python-3.10.1
1、centos7,yum源安装node
- yum install -y epel-release # 安装EPEL仓库
- curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - # 针对Node.js16的
- yum install -y nodejs
- yum install -y nodejs-16.14.2
- # 验证安装:
- node -v
- npm -v
- npx -v
复制代码 2、centos7使用 NVM安装
NVM 答应你在同一台呆板上安装和管理多个 Node.js 版本。
查看nvm版本:https://github.com/nvm-sh/nvm
- # 安装 NVM
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
- source ~/.bashrc
- command -v nvm # 验证NVM是否安装成功
- # 使用NVM安装Node.js:
- nvm install node # 安装最新版
- nvm install 16.14.2 # 安装指定版
- # 使用 NVM 切换到安装的 Node.js 版本
- nvm use node
- nvm use node 16.14.2
- # 验证安装:
- node -v
- npm -v
- npx -v
复制代码 安装受网络影响比较大。
3、centos7源代码安装node
node安装版本:node-v22.12.0.tar.gz
centos:CentOS Linux release 7.9.2009 (Core),最小化安装系统。
- # 安装依赖:
- yum -y groupinstall 'Development Tools'
- yum install -y gcc-c++ make openssl-devel
- # node版本过高,要求python最低版本是3.8
- #下载源包:https://www.python.org/ftp/python,yum安装提示没有,要不网络不行。
- yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
- tar -xvf Python-3.10.1.tar.xz
- cd Python-3.10.1
- ./configure --enable-optimizations
- make -j 8
- make altinstall #使用altinstall而不是install可以防止覆盖默认的系统python二进制文件
- python安装到了/usr/local/bin/python3.10
复制代码 下载源代码:https://nodejs.org/zh-cn/download/prebuilt-binaries
- tar -xvf node-v22.12.0.tar.gz
- cd node-v22.12.0
- mkdir /usr/local/nodejs
- # bin执行目录,lib库目录,include头文件目录,share共享数据目录
- export PYTHON=/usr/local/bin/python3.10
- ./configure
- make -j 10
- make install
- # 若安装失败了,可以使用make clean,再重新配置编译和安装。
复制代码 总的来说,安装还是挺麻烦的,碰到了很多多少很多多少题目,偶然一个题目多次出现,要想源码安装最新的node,最好换更高版本的linux。
**碰到报错:**C++ compiler (CXX=g++, 4.8.5) too old, need g++ 10.1.0 or clang++ 8.0.0
解决题目:升级C++编译器
- #下载gcc:https://ftp.gnu.org/gnu/gcc/
- tar -xvf gcc-11.2.0.tar.gz
- cd gcc-11.2.0
- # 更换下载源:
- vi /root/gcc-11.2.0/contrib/download_prerequisites
- http://gcc.gnu.org/pub/gcc/infrastructure/ 更换为:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/
- # 下载依赖及配置文件:yum -y install bzip2
- ./contrib/download_prerequisites
- # 配置gcc
- ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
- make -j 4 # 执行时间还是挺久的,需要50分钟左右。
- # 卸载旧版本:
- yum -y remove gcc g++
- # 安装:
- make install
- export PATH=/usr/local/bin:$PATH
- gcc -v
- # 配置新版本全局可用:
- ln -s /usr/local/bin/gcc /usr/bin/gcc
- ln -s /usr/local/bin/g++ /usr/bin/g++
- # 更新动态库:
- #查看当前的动态库
- strings /usr/lib64/libstdc++.so.6 | grep CXXABI
- rm -f /usr/lib64/libstdc++.so.6
- ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
- #查看更新后的动态库
- strings /usr/lib64/libstdc++.so.6 | grep CXXABI
- # 安装后的动态库会位于/usr/local/lib64目录下,
- #其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX
复制代码
又碰到题目:
/tmp/ccumRyCj.s:67543: 错误:no such instruction: `vpcompressw %zmm1,%zmm7{%k2}{z}’
解决题目:更新binutils
- # 下载最新的binutils源代码:https://ftp.gnu.org/gnu/binutils/
- # 解压下载的文件
- tar -xvf binutils-2.43.tar.xz
- cd binutils-2.43
- ./configure --prefix=/usr/local
- make
- make install
- # 更新动态链接器缓存
- sudo ldconfig
- as --version
复制代码 **又又碰到题目:**make[1]: cc:命令未找到
export PATH=$PATH:/usr/local/bin
ln -s /usr/local/bin/gcc /usr/local/bin/cc
ln -s /usr/local/bin/gcc /usr/bin/cc
又又又有碰到题目了:/root/node-v22.12.0/out/Release/icupkg: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by /root/node-v22.12.0/out/Release/icupkg)
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
export LD_LIBRARY_PATH=/usr/local/lib64 LD_LIBRARY_PATH
又又又又有碰到题目了:/deps/cares/src/lib/util/ares_rand.c:37:12: 致命错误:sys/random.h:没有那个文件或目录 37 | # include <sys/random.h
- wget https://github.com/c-ares/c-ares/releases/download/v1.34.3/c-ares-1.34.3.tar.gz
- tar -xvf c-ares-1.34.3.tar.gz
- cd c-ares-1.34.3
- ./configure
- make -j 4
- make install
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
- pkg-config --exists --print-errors libcares # 没有错误信息输出,那么pkg-config能够找到c-ares
复制代码 又又又又又有碰到题目了:/deps/cares/src/lib/util/ares_rand.c:37:12: 致命错误:sys/random.h:没有那个文件或目录 37 | # include <sys/random.h
vi /root/node-v22.12.0/deps/cares/src/lib/util/ares_rand.c
//# include <sys/random.h> 用//注释掉
又又又又又又有碰到题目了:make[1]: *** [/root/node-v22.12.0/out/Release/obj/gen/icudt76l.dat] 错误 1
yum install libicu-devel
上面的源码安装时间长,题目多。欠好搞。
4、centos8预构建二进制文件安装node
node安装版本:node-v16.20.2-linux-x64.tar.xz
centos8:CentOS Linux release 8.5.2111(最小化安装)
- yum -y groupinstall 'Development Tools'
- # 使用wget下载最新的Node.js版本(请替换为实际的版本号)
- wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz
- tar -xJvf node-v16.20.2-linux-x64.tar.xz
- mv node-v16.20.2-linux-x64 /usr/local/node
- echo 'export PATH=/usr/local/node/bin:$PATH' >> ~/.bashrc
- source ~/.bashrc
- # 验证安装
- node -v
- npm -v
复制代码
5、centos8源代码安装node
node安装版本:node-v16.20.2.tar.gz
centos8:CentOS Linux release 8.5.2111(最小化安装)
- # 安装依赖:
- yum -y groupinstall 'Development Tools'
- yum install -y gcc-c++ make openssl-devel
- yum install -y python39
复制代码 下载源代码:https://nodejs.org/zh-cn/download/prebuilt-binaries
- mkdir /usr/local/nodejs
- tar -xvf node-v16.20.2.tar.gz
- cd node-v16.20.2
- ./configure --prefix=/usr/local/nodejs
- make -j 10
- make install
- vi ~/.bashrc
- export PATH=/usr/local/nodejs/bin:$PATH
- source ~/.bashrc
- # 验证安装
- node -v
- npm -v
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |