雷习平 發表於 2023-6-2 00:00:00

Centos6.5升级glibc

<h3 id="场景需求">场景需求</h3>
<p><strong>注意更新系统库存在一定的风险, 请谨慎操作</strong><br>
默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, 因此在不升级系统的前提下, 需要主动更新系统glibc库. 一般遇到错误<code>libc.so.6: version GLIBC_2.14 not found</code>时表示需要对glibc进行升级了.</p>
<h3 id="glibc版本">glibc版本</h3>
<p>查看系统glibc库版本可使用如下命令:</p>
<pre class="brush:bash;toolbar:false">$ strings /lib64/libc.so.6 |grep GLIBC_</pre><br><p>Centos6.5输出如下glibc版本列表, 从此图可以看出系统最高支持glibc的2.12版本:</p>
<p></p>
<p>另外, 执行<code>$ ll /lib64/libc**</code>可以看到此时的libc.so.6是libc-2.12.so的别名, 如下图所示:</p>
<p></p>
<h1 id="glibc安装">glibc安装</h1>
<p>首先, 点击此处下载glibc点击下载, 得到<code>glibc-2.14.tar.gz</code>使用如下命令解压<code>glibc-2.14.tar.gz</code>:</p><pre class="brush:bash;toolbar:false">$ tar -xzvf glibc-2.14.tar.gz</pre><p>当前目录下得到目录<code>glibc-2.14</code>, 执行<code>$cd glibc-2.14</code>命令进入目录, 依次执行如下命令编译安装glibc-2.14:</p><pre class="brush:bash;toolbar:false">$ mkdir build        // 在glibc-2.14目录下建立build文件夹
$ cd build                // 进入build目录
$ ../configure --prefix=/opt/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录
$ make &amp;&amp; make install                // 编译安装glibc-2.14库</pre><p></p>
<h3 id="glibc软链">glibc软链</h3>
<p>安装完成后, 建立软链指向glibc-2.14, 执行如下命令:</p><pre class="brush:bash;toolbar:false">$ rm -rf /lib64/libc.so.6 // 先删除先前的libc.so.6软链
$ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6</pre><p><strong>注意</strong></p>
<p>删除<code>libc.so.6</code>之后可能导致系统命令不可用的情况, 可使用如下方法解决:</p><pre class="brush:bash;toolbar:false">$ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6</pre><p>如果上述更新失败可使用如下命令还原:</p><pre class="brush:bash;toolbar:false">$ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so 此项是系统升级前的版本</pre><p>此时查看系统glibc版本如下图所示:</p>
<p></p>
<p>可以看到当前glibc最高版本为2.14, libc.so.6软链指向如下图所示:</p>
<p></p>
頁: [1]
查看完整版本: Centos6.5升级glibc