记录一次部署踩坑: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 系统中,yum 和 dnf 底层依赖于系统自带的 Python 环境(通常是 Python 3.6 或 2.7)以及系统级的 OpenSSL 库。

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

  3. 依赖版本冲突: yum 运行时,错误地加载了 Conda 环境中较新版本的 cryptography 或 pyOpenSSL 库,而这些库与系统底层的 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 环境中使用 yum 或 apt,这极易引发 OpenSSL 或 GLIBC 等底层库的冲突。

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

相关推荐
weixin_461769403 天前
conda create 创建容器 Failed to resolve ‘repo.anaconda.com‘问题
开发语言·python·conda·repo·网络问题·无法创建
饭来_7 天前
Ubuntu 中出现 CondaToSNonInteractiveError 的解决方法
ubuntu·conda·debug
emo_2b9 天前
Pycharm配置conda解释器时遇到的问题及解决方法
linux·pycharm·conda
Είναι η κοπέλα11 天前
llama.cpp 与 GGUF 格式:本地大模型的“裸引擎“
开发语言·人工智能·pytorch·python·conda
Είναι η κοπέλα13 天前
显存计算与模型选择:你的显卡能跑多大的模型
人工智能·pytorch·python·开源·conda
天蓝蓝的本我13 天前
conda日常用到的命令积累1-登录linux,安装pycharm
linux·pycharm·conda
Είναι η κοπέλα15 天前
Python 虚拟环境:venv、conda 与 Python 版本选择全解
开发语言·python·conda
夏天拐跑了西瓜18 天前
一文入门LangChain:从框架认知到构建你的第一个AI Agent
python·langchain·conda·agent
weixin_4617694018 天前
机械臂SDK运行日志
conda·sdk
三点水-here19 天前
从 Miniconda 迁移到 Miniforge3 全记录:安装、配置、环境迁移与排错实录
python·conda