记录一次部署踩坑:Conda 环境导致 yum 报错与 LibreOffice 安装指南

目录

[记录一次部署踩坑:Conda 环境导致 yum 报错与 LibreOffice 安装指南](#记录一次部署踩坑:Conda 环境导致 yum 报错与 LibreOffice 安装指南)

[1. 问题现场](#1. 问题现场)

[2. 原因分析](#2. 原因分析)

[3. 解决方案](#3. 解决方案)

[第一步:退出 Conda 虚拟环境](#第一步:退出 Conda 虚拟环境)

[第二步:安装 LibreOffice-Headless](#第二步:安装 LibreOffice-Headless)

第三步:验证安装

[4. 总结](#4. 总结)


记录一次部署踩坑:Conda 环境导致 yum 报错与 LibreOffice 安装指南

在服务器端部署应用(如 Open WebUI)时,经常需要安装一些系统级的依赖。最近在配置文档解析功能(RAG)时,需要安装 LibreOffice,却意外遇到了 Python 环境冲突导致 yum 崩溃的问题。

本文记录了错误的排查过程及最终的解决方案,希望能帮到遇到类似问题的朋友。

1. 问题现场

环境: Alibaba Cloud Linux / CentOS

场景: 正在 (openwebui) 的 Conda 虚拟环境中,尝试通过 yum 安装 LibreOffice。

执行命令:

Bash

复制代码
(openwebui) [root@server backend]# yum install -y libreoffice

报错信息:

系统抛出了 OpenSSL 相关的 Python 错误,并提示 spacewalk 插件加载失败:

Plaintext

复制代码
/usr/lib/python3.6/site-packages/OpenSSL/crypto.py:12: CryptographyDeprecationWarning: Python 3.6 is no longer supported...
  from cryptography import x509

Failed loading plugin "spacewalk": module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
Last metadata expiration check: ...
No match for argument: libreoffice
Error: Unable to find a match: libreoffice

随后,yum 无法找到软件包并退出。

2. 原因分析

这个报错看似是 OpenSSL 的问题,实则是 Python 环境隔离不当 引起的系统工具冲突。

  1. Yum 是基于 Python 的工具: 在 CentOS/RHEL 系统中,yumdnf 底层依赖于系统自带的 Python 环境(通常是 Python 3.6 或 2.7)以及系统级的 OpenSSL 库。

  2. Conda 环境劫持: 当我们激活了 (openwebui) 虚拟环境时,环境变量 PATHPYTHONPATH 被修改。

  3. 依赖版本冲突: yum 运行时,错误地加载了 Conda 环境中较新版本的 cryptographypyOpenSSL 库,而这些库与系统底层的 yum 并不兼容(缺少了 X509_V_FLAG_CB_ISSUER_CHECK 属性),从而导致崩溃。

此外,报错 No match for argument: libreoffice 是因为在某些服务器发行版的默认源中,不包含完整的 GUI 版 LibreOffice,或者元数据缓存因崩溃未能正确刷新。

3. 解决方案

解决的核心思路是:将系统运维操作与业务代码环境分开

第一步:退出 Conda 虚拟环境

在执行系统级安装命令前,必须先退出当前的 Python 虚拟环境,确保 yum 使用原生的系统 Python 库。

Bash

复制代码
# 退出当前环境
conda deactivate

此时,命令行提示符应从 (openwebui) [root@...] 变为 [root@...]

第二步:安装 LibreOffice-Headless

在服务器环境下,我们通常不需要图形界面(GUI),只需要 LibreOffice 的核心转换功能(用于将 .doc/.xlsx 转为 PDF 或文本)。因此,安装 libreoffice-headless 是更优的选择,体积小且依赖少。

执行安装:

Bash

复制代码
yum install libreoffice-headless -y

(如果提示找不到包,可能需要先安装 EPEL 源:yum install epel-release)

第三步:验证安装

安装完成后,验证是否可用:

Bash

复制代码
libreoffice --headless --version

输出类似 LibreOffice 7.x.x.x 即表示安装成功。

4. 总结

在 Linux 服务器上进行运维操作时,请牢记以下原则:

  1. 各司其职: 使用 pip/conda 管理项目依赖,使用 yum/apt 管理系统软件。

  2. 避免混用: 尽量不要在激活的 Conda/Virtualenv 环境中使用 yumapt,这极易引发 OpenSSL 或 GLIBC 等底层库的冲突。

  3. 按需安装: 服务器端处理文档,优先选择 headless 版本软件,避免引入庞大的 X11 图形界面依赖。

相关推荐
时见先生16 小时前
Python库和conda搭建虚拟环境
开发语言·人工智能·python·自然语言处理·conda
好好学习啊天天向上1 天前
conda pip更新安装路径,解决C盘容易不够的问题
python·conda·pip·2025yfb3003605
leo_messi942 天前
conda使用记录
conda
理智.6292 天前
Cursor 中使用 Conda 虚拟环境常见问题与彻底解决方案(踩坑实录)
python·conda
小鸡脚来咯2 天前
conda使用教程
conda
工程师老罗3 天前
Pycharm下如何新建一个conda环境?
ide·pycharm·conda
工程师老罗3 天前
conda的常见指令
conda
理智.6293 天前
根据requirements.txt 完成环境中的依赖库导入
python·conda·pip
gs801403 天前
【保姆级】MetaGPT安装避坑指南:Windows+Conda环境下解决依赖冲突、版本过低及配置失效问题
人工智能·windows·conda·metagpt