系统运维


node18、chrom、puppeteer安装

<h1>安装nvm</h1> <ol> <li> <p>首先,如果你还没有安装 NVM,你需要先安装它。你可以使用 curl 或 wget 来下载和运行 NVM 的安装脚本。以下是使用 curl 的命令:</p> <p><code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash</code></p> <p>这个命令会下载并运行 NVM 的安装脚本。脚本会自动将 NVM 的源代码克隆到 <code>~/.nvm</code> 目录,并将必要的环境变量添加到你的 shell 配置文件(如 <code>~/.bash_profile</code>、<code>~/.zshrc</code>、<code>~/.profile</code> 或 <code>~/.bashrc</code>)。</p> </li> <li> <p>完成安装后,你需要关闭并重新打开你的终端,或者运行以下命令来更新你的 shell 配置:</p> <p><code>source ~/.bash_profile</code></p> </li> </ol> <h1>kill掉yum之后的操作</h1> <pre><code>rm -f /var/lib/rpm/__db* rpm --rebuilddb </code></pre> <h1>安装chromium</h1> <pre><code> yum install chromium -y</code></pre> <h1>安装node18 (安装完node18之后必须要重启crond)</h1> <p>CentOS 7环境下安装 Nvm,在执行<code>nvm use 18.17.0</code>后执行<code>node -v</code>爆出如下错误</p> <pre><code>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)</code></pre> <p>其实这本质上并不是 Nvm 的问题,而是CentOS低版本系统的 GLIBC 版本过低,我们再查看 ldd 版本</p> <pre><code># 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.</code></pre> <p>我们发现系统中 GLIBC 版本仅为 17,而报错中显示我们缺失,25,27,28。而 GLIBC是向下兼容的,安装高版本的同时会安装低版本,所以我们只需要安装 GLIBC_2.28 即可</p> <p>&gt; 注意:如果有条件的话可以直接升级系统 CentOS 8,可以有效解决问题</p> <h2>解决方案</h2> <h3>更新 glibc</h3> <pre><code>cd wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar xf glibc-2.28.tar.gz cd glibc-2.28/ &amp;amp;&amp;amp; mkdir build &amp;amp;&amp;amp; cd build</code></pre> <h3>升级 gcc、make</h3> <pre><code># 升级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 &amp;amp;&amp;amp; cd make-4.3/ ./configure --prefix=/usr/local/make make &amp;amp;&amp;amp; make install cd /usr/bin/ &amp;amp;&amp;amp; mv make make.bak ln -sv /usr/local/make/bin/make /usr/bin/make # 查看make版本是否是4.3 make -v</code></pre> <h3>升级 libstdc++</h3> <p>我看到有些知友说这部分是没有意义的,有的甚至给系统搞崩,怎么说呢,我毕竟也不是专门做 linux 的(有了解的知友可以讲下原理),对这个也不是很了解,不过我自己当时是做了这部分 libstdc++ 升级,大家可以选择先给这个章节跳过,看是否可以解决问题,不能的话再折返会该章节(2024.03.26 更新)</p> <pre><code>yum whatprovides libstdc++.so.6 yum update -y libstdc++.x86_64 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</code></pre> <h3>编译安装</h3> <pre><code>cd ~/glibc-2.28/build # 配置环境 ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin # 安装 make make install</code></pre> <h3>查看版本</h3> <h3>lld</h3> <pre><code>(base) [root@VM-4-3-centos build]# ldd --version ldd (GNU libc) 2.28 Copyright (C) 2018 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.</code></pre> <h3>node</h3> <pre><code>(base) [root@VM-4-3-centos build]# node -v v18.17.0 ln -s /data/node18/node-v18.19.1-linux-x64/bin/node /usr/local/bin/ ln -s /data/node18/node-v18.19.1-linux-x64/bin/node /usr/bin/ ln -s /data/node18/node-v18.19.1-linux-x64/bin/npm /usr/local/bin/ ln -s /data/node18/node-v18.19.1-linux-x64/bin/npm /usr/bin/</code></pre>

页面列表

ITEM_HTML