记录一次部署踩坑: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 图形界面依赖。

相关推荐
神秘剑客_CN1 天前
ubuntu26.04音频转srt字幕
ubuntu·conda·whisperx
积跬步,慕至千里7 天前
解决 Conda 环境在 Jupyter Notebook 中不显示的问题(含重复 Kernel 排查)
windows·jupyter·conda
咕噜咕噜啦啦8 天前
RTX5090配置DGL
pytorch·python·conda·pip
马优晨10 天前
Pip 和 Conda 是什么关系?
conda·pip·pip 和 conda 关系·conda和pip的关系·pip和conda是什么
yuanpan10 天前
Python 与 Conda 编程实战指南:从环境配置到项目运行完整入门
开发语言·python·conda
其实防守也摸鱼11 天前
VS code怎么使用 Conda 安装预编译包
开发语言·网络·c++·vscode·安全·web安全·conda
独隅11 天前
Anaconda、Miniconda 与 Conda 全面对比:核心差异、适用场景与选型指南
conda
独隅11 天前
Anaconda 与 Conda 全面对比:核心差异、适用场景与选型指南
conda
Robot_Nav11 天前
Python 虚拟环境完全指南:venv、virtualenv 与 Conda
python·conda·virtualenv
独隅11 天前
Conda 与 Miniconda 全面对比:核心差异、适用场景与选型指南
conda