深夜风尘 發表於 2023-9-24 00:00:00

Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查

<p>
        最近在工作中发现一个问题,yum无法使用,报错如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_421381">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: crypto_num_locks</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/449a998410ee1c5ff3ef93d9d610afcc.jpg"></p>
<p>
        ldd /usr/lib64/python2.7/site-packages/pycurl.so 查看一下动态库连接</p>
<p>
        <span><strong>注意:</strong></span>libcurl的位置</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/51b436cce4a83774cc736ffb14c4436d.jpg"></p>
<p>
        查看一下libcurl是否有什么异常的配置</p>
<p>
        <code>ldconfig -v | grep libcurl </code>发现两个libcurl</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/9bd92c81940a2f018cee2093a6bfdad4.jpg"></p>
<p>
        检查ld.so.conf的配置</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/d0a2efb1967f29cf6fb27ba2c6727934.jpg"></p>
<p>
        对比正常的测试机</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/322ed9be5220fcb1cb32ef602f88aed7.jpg"></p>
<p>
        根据前面的ldd来看,去掉local lib试试</p>
<p>
        <code>vi /etc/ld.so.conf</code></p>
<p>
        执行<code>ldconfig </code>,重新生成缓存,无返回,测试yum还是不行</p>
<p>
        <code>ldconfig -p|grep curl</code> 看下加载</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/e72f96241f6c8718be896a4522006912.jpg"></p>
<p>
        继续查找</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/0ef69aea19ccbe56391cb16035d3c1dd.jpg"></p>
<p>
        删除对应的目录,然后刷新缓存(这里很明显是mysql设置的libcurl地址,经过核实后,发现mysql安装有问题,已经删除了)</p>
<p>
        <img title="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" alt="Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查" src="https://zhuji.jb51.net/uploads/img/202305/4b67ce73fc9f6c960ce719a02f69191f.jpg"></p>
<p>
        yum 现在可以用了。</p>
<p>
        <span><strong>知识扩展:</strong></span></p>
<p>
        ldconfig 是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig。</p>
<p>
        ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.</p>
<p>
        ldd 作用:用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
        原文链接:http://yq.aliyun.com/articles/103181</p>
頁: [1]
查看完整版本: Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查