You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行更新与autoremove后,Rails服务器启动提示缺失libssl.so.1.0.2求助

问题分析与解决方案

首先可以明确:这个错误和你系统的OpenSSL版本直接相关。

你执行apt autoremove后,旧版本OpenSSL 1.0.2对应的libssl.so.1.0.2库被自动清理了,但你的Rails项目(或者它依赖的某个Ruby gem)在编译时是链接到这个旧版本库的,现在系统里的OpenSSL版本已经更新,找不到旧库就抛出了这个错误。而你朋友的系统还保留着OpenSSL 1.0.2,所以能正常运行。

下面是几种可行的解决方案,按推荐程度排序:

1. 安装OpenSSL 1.0.2的库文件

这是最直接的修复方式,把被删掉的旧版本库装回来:

  • 对于Ubuntu/Debian系统,先尝试从官方源安装:
    sudo apt update
    sudo apt install libssl1.0.2
    
  • 如果官方源已经移除了这个包(比如你的系统版本较新),可以手动下载对应架构的deb包安装(以Ubuntu 16.04 amd64为例):
    wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.2_1.0.2g-1ubuntu4.20_amd64.deb
    sudo dpkg -i libssl1.0.2_1.0.2g-1ubuntu4.20_amd64.deb
    
    注意:下载时要匹配你的系统架构和版本,避免兼容性问题。

2. 重新编译依赖的Ruby gem

有时候问题出在某个gem(比如openssl gem)是基于旧版本OpenSSL编译的,重新安装可以让它适配当前系统的OpenSSL版本:

# 先卸载旧的openssl gem
gem uninstall openssl
# 重新安装,指定当前系统的OpenSSL路径
gem install openssl -- --with-openssl-dir=/usr/lib/ssl
# 或者直接重新安装项目所有依赖
bundle install

3. 临时软链接(不推荐长期使用)

如果暂时无法安装旧版本库,可以通过软链接让系统“假装”存在旧库文件,但这是临时方案,可能会影响其他依赖新版本OpenSSL的程序:

  • 先查看当前系统的libssl版本:
    ls /usr/lib/x86_64-linux-gnu/libssl.so*
    
  • 假设当前版本是libssl.so.1.1,创建软链接:
    sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2
    

执行完上述任意一种方案后,再尝试启动Rails服务器:

rails server

内容的提问来源于stack exchange,提问作者Muhammad Faisal Iqbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:22:50