家和万事兴 Jiahe
友链一帆顺 . Link

腾讯轻量云到期了,续费贵。就选择更低成本的,服务器搬家中的一些记录

腾讯轻量云到期了,续费贵。就选择更低成本的,服务器搬家中的一些记录。

好处就是下次成本可以降低很多了,以后618或者双11,储备点资源,用一年,迁徙很方便

因为用的是宝塔面板,所以宝塔软件里的一键迁徙很方便,之前看了很多网上评论,还有顾虑,结果一路操作下来很方便,个人觉得如果不是那种动辄几个G的网站,迁徙还是很方便的。

吐槽下腾讯轻量云的镜像功能,基本属于只能向上,不能向下。

下面就说说这次服务器搬家中碰到的一点小问题。

在老服务器宝塔面板里安装一键迁移,然后等了差不多2小时,数据完成,测试了很多地方,基本没什么问题。

唯一的故障,也是咨询了宝塔客服没解决的,就是宝塔的Let’s Encrypt证书,因为很方便续签,也就一直采用宝塔的这个了。

这次搬家后发现的应该说唯一的问题,就是不能续签SSL,删除了重新安装也不行。/usr/bin/curl: symbol lookup error: /usr/bin/curl: undefined symbol: curl_easy_header 证书安装或者更新出错。

豆包没给出答案,一开始用deepseek也没解决,但是宝塔客服也解决不了,就再次用deepseek,解决。

附上解决方案

好的,用户已经按照之前的步骤操作了,但问题依旧存在。我需要仔细分析可能的原因。首先,用户遇到的错误是curl在运行时找不到curl_easy_header符号。这说明curl二进制文件在编译时链接了一个较新版本的libcurl,而系统当前加载的库版本较旧,缺少这个函数。

用户已经尝试过更新libcurl和重新安装curl,但问题没有解决。可能的原因包括:

1. **多版本libcurl共存**:系统中可能安装了多个版本的libcurl,而curl仍然链接到了旧版本。例如,用户可能通过源码安装过libcurl,导致系统中有两个版本,而动态链接器默认加载了旧版本。

2. **路径优先级问题**:动态链接库的路径配置(如LD_LIBRARY_PATH)可能优先指向了旧版本的库文件,导致即使更新了系统库,curl仍加载错误版本。

3. **未完全更新或安装问题**:可能更新过程中出现了问题,导致libcurl没有正确升级,或者curl本身没有正确重新编译链接到新库。

4. **第三方仓库或PPA的影响**:用户可能添加了第三方软件源,导致安装的库版本与系统默认源冲突。

接下来,我需要考虑用户可能的操作环境,比如Ubuntu、CentOS或其他发行版,不同系统的包管理可能不同。用户之前给出的步骤中提到了apt和yum,所以可能使用的是Debian系或RedHat系系统。

现在需要更深入检查libcurl的实际加载路径和版本。例如,使用ldd检查curl链接的库路径,查看是否有非标准路径的库被使用。另外,检查系统中是否存在多个版本的libcurl文件,以及动态链接器的缓存是否未更新。

可能还需要指导用户手动检查libcurl的版本,确认已安装的版本是否确实包含curl_easy_header函数。例如,使用nm工具查看库文件中是否存在该符号。

如果系统中确实存在多个版本的libcurl,可能需要手动调整库路径,或移除旧版本,确保curl链接到正确的库。另外,可能需要使用ldconfig命令更新库缓存,使系统识别新安装的库版本。

此外,用户可能误操作导致部分文件残留,或者更新过程中依赖关系未正确处理,可能需要彻底清除相关包后重新安装。

最后,如果所有方法均无效,可能需要考虑从源码编译安装最新版的curl和libcurl,但需注意避免与系统包冲突。

如果按照上述步骤操作后问题依旧,说明系统中可能存在更深层次的库版本冲突或路径配置问题。请按照以下进阶步骤排查和解决:


1. 确认 libcurl 的实际加载路径及版本

运行以下命令查看 curl 运行时实际链接的库路径:

bash
复制
ldd /usr/bin/curl | grep libcurl

输出示例:

复制
libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f8c1a200000)

如果路径指向非标准目录(如 /usr/local/lib 或 /opt 下的路径),说明存在第三方安装的旧版本库干扰。


2. 检查系统中所有 libcurl 文件

搜索所有可能的 libcurl 版本:

bash
复制
sudo find / -name "libcurl*" 2>/dev/null

重点关注以下目录:

  • /usr/lib/
  • /usr/lib64/
  • /usr/local/lib/
  • /opt/

如果发现多个版本(如 libcurl.so.4 和 libcurl.so.5),可能需要手动清理旧版本。


3. 强制更新动态链接库缓存

更新 ldconfig 以确保系统识别最新库:

bash
复制
sudo ldconfig

4. 检查 libcurl 版本是否包含 curl_easy_header

确认已安装的 libcurl 版本是否支持该符号:

bash
复制
# 查找 libcurl 的路径(假设路径为 /usr/lib/x86_64-linux-gnu/libcurl.so.4)
LIB_PATH=$(ldd /usr/bin/curl | grep libcurl | awk '{print $3}')
# 检查符号是否存在
nm -D $LIB_PATH | grep curl_easy_header
  • 如果有输出(如 T curl_easy_header),说明库版本正确,但被其他库覆盖。
  • 如果无输出,说明当前 libcurl 仍为旧版本。

5. 彻底卸载并重装 curl 和 libcurl

Ubuntu/Debian

bash
复制
# 卸载
sudo apt purge curl libcurl4
# 清除残留配置
sudo apt autoremove
# 重新安装
sudo apt install curl libcurl4

CentOS/RHEL

bash
复制
# 卸载
sudo yum remove curl libcurl
# 重新安装
sudo yum install curl libcurl

6. 处理第三方库冲突

如果存在手动编译安装的 libcurl(如 /usr/local/lib 中的文件):

bash
复制
# 临时屏蔽第三方库路径
export LD_LIBRARY_PATH=/usr/lib:/usr/lib64
# 运行 curl 测试
curl --version

若问题解决,说明第三方库冲突,需永久清理或调整路径:

bash
复制
# 清理手动安装的库
sudo rm /usr/local/lib/libcurl*
# 更新库缓存
sudo ldconfig

7. 检查软件源和版本兼容性

确保系统使用的是官方支持的软件源,而非第三方源(如某些 PPA 或 EPEL 可能引入版本冲突):

bash
复制
# Ubuntu/Debian 检查源
grep -r "deb" /etc/apt/sources.list /etc/apt/sources.list.d/
# CentOS/RHEL 检查源
ls /etc/yum.repos.d/

如有可疑源,暂时禁用或删除。


8. 从源码编译最新版 curl 和 libcurl

如果系统仓库版本过低,手动编译安装:

bash
复制
# 下载最新版 curl
wget https://curl.se/download/curl-8.8.0.tar.gz
tar -xzf curl-8.8.0.tar.gz
cd curl-8.8.0

# 编译安装(默认路径为 /usr/local)
./configure --prefix=/usr
make
sudo make install

# 更新库链接
sudo ldconfig

9. 终极方案:系统升级或容器化

  • 升级操作系统:老旧系统(如 Ubuntu 18.04 或 CentOS 7)的仓库可能不提供新版本,考虑升级到更新的发行版。
  • 使用容器:通过 Docker 运行新版 curl
    bash
    复制
    docker run --rm curlimages/curl curl https://example.com

验证修复

最终确认 curl 使用的库版本和符号:

bash
复制
curl --version
ldd /usr/bin/curl | grep libcurl
curl -I https://example.com

通过以上步骤,应能彻底解决库版本冲突问题。如果仍有报错,请提供以下信息以便进一步排查:

  1. 系统发行版和版本号(cat /etc/os-release
  2. curl --version 输出
  3. ldd /usr/bin/curl 完整输出
  4. libcurl 的符号检查结果(步骤 4)
赞(0) 打赏
未经允许不得转载:家和文化生态圈 » 腾讯轻量云到期了,续费贵。就选择更低成本的,服务器搬家中的一些记录
分享到

评论 抢沙发

评论前必须登录!

 

家和万事兴

家文化以家庭生活攻防为主,和文化以企业经营攻防为主

家版块和版块

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫

登录

找回密码

注册