Centos7.8 升级node v18.14.0时/lib64/libm.so.6: version ‘GLIBC_2.27‘ not found (required by node)

注意:升级的时候 记得服务器做好镜像快照,用于恢复。有几率搞崩系统

升级原因:从 v18 开始,Node.js 不再支持 centos 7 和其他一些 Linux 发行版,因为 glibc 版本不兼容。

安装v18.14.0时的报错和解决方法

  • 1.报错

​
[root@devops03 ~/.nvm]# nvm install v18.14.0

Downloading and installing node v18.14.0...

Downloading https://npm.taobao.org/mirrors/node/v18.14.0/node-v18.14.0-linux-x64.tar.xz...

######################################################################## 100.0%

Computing checksum with sha256sum

Checksums matched!

Now using node v18.14.0 (npm v)

Creating default alias: default -> v18.14.0

[root@devops03 ~/.nvm]# node -v

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

​
  • 2.查看ldd版本

ldd --version

ldd (GNU libc) 2.17

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Written by Roland McGrath and Ulrich Drepper.
  • 3.检查二进制文件需要的依赖,缺少依赖包时后面会显示not found

[root@devops03 ~/.nvm]# ldd -v /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node)

linux-vdso.so.1 => (0x00007ffea03f4000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007ff81564f000)

libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff815348000)

libm.so.6 => /lib64/libm.so.6 (0x00007ff815046000)

libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff814e30000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff814c14000)

libc.so.6 => /lib64/libc.so.6 (0x00007ff814847000)

/lib64/ld-linux-x86-64.so.2 (0x00007ff815853000)



Version information:

/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin/node:

ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2

libgcc_s.so.1 (GCC_3.4) => /lib64/libgcc_s.so.1

libm.so.6 (GLIBC_2.27) => not found

libm.so.6 (GLIBC_2.2.5) => /lib64/libm.so.6

libpthread.so.0 (GLIBC_2.3.3) => /lib64/libpthread.so.0

libpthread.so.0 (GLIBC_2.3.2) => /lib64/libpthread.so.0

libpthread.so.0 (GLIBC_2.2.5) => /lib64/libpthread.so.0

libc.so.6 (GLIBC_2.25) => not found

libc.so.6 (GLIBC_2.16) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.9) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.10) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.6) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.3.4) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.28) => not found

libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.7) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

libstdc++.so.6 (GLIBCXX_3.4.14) => /lib64/libstdc++.so.6

libstdc++.so.6 (GLIBCXX_3.4.18) => /lib64/libstdc++.so.6

libstdc++.so.6 (CXXABI_1.3.5) => /lib64/libstdc++.so.6

libstdc++.so.6 (CXXABI_1.3) => /lib64/libstdc++.so.6

libstdc++.so.6 (GLIBCXX_3.4.15) => /lib64/libstdc++.so.6

libstdc++.so.6 (CXXABI_1.3.9) => not found

libstdc++.so.6 (GLIBCXX_3.4.9) => /lib64/libstdc++.so.6

libstdc++.so.6 (GLIBCXX_3.4.11) => /lib64/libstdc++.so.6

libstdc++.so.6 (GLIBCXX_3.4.20) => not found

libstdc++.so.6 (GLIBCXX_3.4) => /lib64/libstdc++.so.6

libstdc++.so.6 (GLIBCXX_3.4.21) => not found

libdl.so.2 (GLIBC_2.2.5) => /lib64/libdl.so.2

/lib64/libdl.so.2:

ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

/lib64/libstdc++.so.6:

ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2

libm.so.6 (GLIBC_2.2.5) => /lib64/libm.so.6

libgcc_s.so.1 (GCC_4.2.0) => /lib64/libgcc_s.so.1

libgcc_s.so.1 (GCC_3.3) => /lib64/libgcc_s.so.1

libgcc_s.so.1 (GCC_3.0) => /lib64/libgcc_s.so.1

libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

/lib64/libm.so.6:

ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6

/lib64/libgcc_s.so.1:

libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

/lib64/libpthread.so.0:

ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2

ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2

ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6

libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6

libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6

/lib64/libc.so.6:

ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2

ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
  • 4.查看系统内安装的glibc版本

    根据分析可得知,新版的node v18开始,都需要GLIBC_2.27支持,目前系统没有那么高的版本。

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

GLIBC_2.2.5
  • 5.解决办法,更新glibc

​
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz

tar xf glibc-2.28.tar.gz

cd glibc-2.28/ && mkdir build && cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

​
  • 6.可能出现的错误————最后几行,make问题(重点)

​
configure: error:

*** These critical programs are missing or too old: make bison compiler

*** Check the INSTALL file for required versions.

解决办法:升级gcc与make

# 升级GCC(默认为4 升级为8)

yum install -y centos-release-scl

yum install -y devtoolset-8-gcc*

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g++-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

# 升级 make(默认为3 升级为4)

wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz

tar -xzvf make-4.3.tar.gz && cd make-4.3/

./configure --prefix=/usr/local/make

make && make install

cd /usr/bin/ && mv make make.bak

ln -sv /usr/local/make/bin/make /usr/bin/make

这时所有的问题都已经解决完毕,再重新执行上一步,更新glibc即可。

cd /root/glibc-2.28/build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

​
  • 7.但时我此时查看node -v时还有报错:

​
[root@devops03 ~/.nvm]# node -v

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

##通过strings命令查看判断是缺少GLIBCXX_3.4.20,解决方法是升级libstdc++

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

strings /lib64/libstdc++.so.6 | grep GLIBCXX

make all

yum whatprovides libstdc++.so.6

yum update -y libstdc++.x86_64

##这个版本的libstdc++.so.6实际上版本比较旧,并不能解决问题。# 下载稍微新一点的版本

sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip

unzip libstdc.so_.6.0.26.zip

cp libstdc++.so.6.0.26 /lib64/

cd /lib64

##把原来的命令做备份cp libstdc++.so.6 libstdc++.so.6.bak

rm -f libstdc++.so.6

##重新链接ln -s libstdc++.so.6.0.26 libstdc++.so.6

​
  • 8.此时再次通过strings查看有没有GLIBCXX_3.4.20

[root@devops03 ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

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_3.4.14

GLIBCXX_3.4.15

GLIBCXX_3.4.16

GLIBCXX_3.4.17

GLIBCXX_3.4.18

GLIBCXX_3.4.19

GLIBCXX_3.4.20

GLIBCXX_3.4.21

GLIBCXX_3.4.22

GLIBCXX_3.4.23

GLIBCXX_3.4.24

GLIBCXX_3.4.25

GLIBCXX_3.4.26

GLIBCXX_DEBUG_MESSAGE_LENGTH

_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5

GLIBCXX_3.4.21

GLIBCXX_3.4.9_ZSt10adopt_lock@@GLIBCXX_3.4.11

GLIBCXX_3.4.10

GLIBCXX_3.4.16

GLIBCXX_3.4.1_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4_ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4

GLIBCXX_3.4.25_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCXX_3.4.5_ZNSs7_M_moveEPcPKcm@@GLIBCXX_3.4.5_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@@GLIBCXX_3.4.5_ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4_ZSt10defer_lock@@GLIBCXX_3.4.11_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4_ZNSs9_M_assignEPcmc@@GLIBCXX_3.4.5_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@@GLIBCXX_3.4.5_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4

GLIBCXX_3.4.24_ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.11

GLIBCXX_3.4.20_ZNSt11char_traitsIwE2eqERKwS2_@@GLIBCXX_3.4.5

GLIBCXX_3.4.12_ZNSi6ignoreEv@@GLIBCXX_3.4.5

GLIBCXX_3.4.2_ZNSt11char_traitsIcE2eqERKcS2_@@GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.15_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5_ZNSs9_M_assignEPcmc@GLIBCXX_3.4

GLIBCXX_3.4.19_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4_ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@@GLIBCXX_3.4.5

GLIBCXX_3.4.23

GLIBCXX_3.4.3

GLIBCXX_3.4.7_ZNSi6ignoreEl@@GLIBCXX_3.4.5_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@@GLIBCXX_3.4.5

GLIBCXX_3.4.18_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@@GLIBCXX_3.4.5_ZSt15future_category@@GLIBCXX_3.4.14_ZNSi6ignoreEl@GLIBCXX_3.4_ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4_ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4_ZNVSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.11_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4_ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@GLIBCXX_3.4_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@@GLIBCXX_3.4.5_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4

GLIBCXX_3.4.22_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@@GLIBCXX_3.4.5_ZNSi6ignoreEv@GLIBCXX_3.4_ZNSs7_M_copyEPcPKcm@@GLIBCXX_3.4.5

GLIBCXX_3.4.8

GLIBCXX_3.4.13_ZSt11try_to_lock@@GLIBCXX_3.4.11_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5

GLIBCXX_3.4.17

GLIBCXX_3.4.4_ZNKSs15_M_check_lengthEmmPKc@@GLIBCXX_3.4.5_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4_ZNSs4_Rep26_M_set_length_and_sharableEm@@GLIBCXX_3.4.5

GLIBCXX_3.4.26_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
  • 9.有了,问题解决

[root@devops03 ~]# node -v

v18.14.0
  • 10.让node命令全局生效(这一步与升级无关)

# ~/.bashrc文件中需要添加:export NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completionexport NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

export PATH=/root/.nvm/nvm-0.38.0/versions/node/v18.14.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

参考:https://www.cnblogs.com/even160941/p/17319119.html

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用表示在运行node遇到了错误,提示缺少GLIBCXX_3.4.18版本。引用提到如果在运行node -v命令遇到报错node: /lib64/libc.so.6: version `GLIBC_2.18' not found,可以尝试下载clibc。而引用解决了/lib64/libc.so.6: version `GLIBC_2.15' not found的问题。 针对你提到的node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)的错误,我建议你按照类似的步骤来解决。 首先,我们需要确定当前系统上glibc的版本。可以通过命令ldd --version来查看。如果版本低于GLIBC_2.25,那么我们需要升级glibc。 要升级glibc,你可以按照以下步骤进行操作: 1. 下载glibc的最新版本并解压缩。 2. 进入解压缩后的目录。 3. 创建一个新的目录用于构建glibc,例如build。 4. 进入build目录,并运行../configure命令来配置glibc的构建选项。 5. 运行make命令来构建glibc。 6. 运行make install命令来安装glibc。 完成以上步骤后,你应该成功升级glibc。现在,你可以再次尝试运行node,应该不会再遇到GLIBC_2.25版本缺失的错误了。记得在升级glibc之前备份你的系统,以防万一。 希望以上解决方案对你有所帮助!如果还有其他问题,请随提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [node: /lib64/libc.so.6: version `GLIBC_2.16‘ not found (required by node)](https://blog.csdn.net/xuelang532777032/article/details/114283286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值