Linux基础——open‑webui安装及问题

##########################################################################
# 目录
##########################################################################
一、安装open‑webui平台
## 1、安装open-webui平台
## 2、制作 systemd 服务文件 `/etc/systemd/system/open-webui.service`
## 3、重载配置、启动open-webui服务、开机启动、查看服务状态
## 4、放通防火墙
## 5、实时日志
附录A:问题
## 问题1:Openeuler20.03系统自带sqlite3版本过低,报错:RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.
## 问题2:open‑webui全部版本要求 Python >=3.11
## 问题3:报错The necessary bits to build these optional modules were not found:nis
## 问题4:默认/tmp目录使用tmpfs内存空间不足
附录B:升级软件
## 软件升级1:openEuler 源码编译 Python3.12(从 3.7.9 升级到 3.12)
## 软件升级2:升级sqlite 3.35.0以上版本

##########################################################################
##########################################################################
# 涉及升级和安装open-webui、pip
pip3 install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
##########################################################################
## 涉及所有节点
ollama节点:192.168.190。150
open-webui节点:192.168.190.151

##########################################################################
##########################################################################
# 一、安装open‑webui平台 open-webui节点:192.168.190.151
**************************************************************************
## 1、安装open-webui平台
**************************************************************************
pip3 install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple

**************************************************************************
## 2、制作 systemd 服务文件 `/etc/systemd/system/open-webui.service`
**************************************************************************
### 服务参数介绍
#### 环境参数Environment
##### LD_LIBRARY_PATH:指定sqlite3版本库,安装版本大于 3.35,3.45.3 稳定版
##### OLLAMA_BASE_URL:跨主机指定ollama服务
#### 启动参数ExecStart
##### open-webui serve启动本地服务,提供监听端口8080

[root@PaaS01 sqlite-autoconf-3530400]# cat /etc/systemd/system/open-webui.service
[Unit]
Description=Open‑WebUI Python3.12
After=network.target ollama.service

[Service]
User=root
Environment="LD_LIBRARY_PATH=/usr/local/sqlite345/lib"
Environment="OLLAMA_BASE_URL=http://192.168.190.150:11434"
Environment="DATA_DIR=/opt/open-webui-data"
ExecStart=/usr/local/python312/bin/open-webui serve --host 0.0.0.0 --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

image

 

**************************************************************************
## 3、重载配置、启动open-webui服务、开机启动、查看服务状态
**************************************************************************
systemctl daemon-reload
systemctl enable --now open-webui
systemctl status open-webui

**************************************************************************
## 4、放通防火墙 (测试机防火墙和selinux都关闭)
**************************************************************************
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

**************************************************************************
## 5、实时日志
**************************************************************************
### 开启新会话,实时监测open-webui服务启动情况
journalctl -u open-webui -f
ss -anltp | grep "8080"

image

 

**************************************************************************

## 6、检查服务启动状态

**************************************************************************
ss -anltp | grep "8080"

**************************************************************************

## 7、web浏览器打开Open WebUI注册用户

**************************************************************************

访问网址:http://192.168.190.151:8080/

注册账号:
用户:OpenWebUI_user01
邮箱:example@test.com
密码:pNz_2@sMw6P

image

 

##########################################################################
附录A:问题
##########################################################################
**************************************************************************
## 问题1:Openeuler20.03系统自带sqlite3版本过低,报错:RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.
**************************************************************************
(py312_env) [root@PaaS01 opt]# systemctl status open-webui
● open-webui.service - Open‑WebUI Python3.12
Loaded: loaded (/etc/systemd/system/open-webui.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2026-08-25 18:21:55 CST; 5s ago
Main PID: 10655 (open-webui)
Tasks: 2
Memory: 149.4M
CGroup: /system.slice/open-webui.service
└─10655 /opt/py312_env/bin/python3.12 /usr/local/python312/bin/open-webui serve --host 0.0.0.0 --port 8080
Aug 25 18:22:01 PaaS01 open-webui[10655]: │ 152 │ │ │ │ "\033[91mYour system has an unsupported version of │
Aug 25 18:22:01 PaaS01 open-webui[10655]: │ sqlite3. Chroma \ │
Aug 25 18:22:01 PaaS01 open-webui[10655]: │ 153 │ │ │ │ │ requires sqlite3 >= 3.35.0.\033[0m\n" │
Aug 25 18:22:01 PaaS01 open-webui[10655]: │ 154 │ │ │ │ "\033[94mPlease visit \ │
Aug 25 18:22:01 PaaS01 open-webui[10655]: ╰──────────────────────────────────────────────────────────────────────────────╯
Aug 25 18:22:01 PaaS01 open-webui[10655]: RuntimeError: Your system has an unsupported version of sqlite3. Chroma
Aug 25 18:22:01 PaaS01 open-webui[10655]: requires sqlite3 >= 3.35.0.
Aug 25 18:22:01 PaaS01 open-webui[10655]: Please visit
Aug 25 18:22:01 PaaS01 open-webui[10655]: [https://docs.trychroma.com/troubleshooting#sqlite](https://docs.trychroma.com/troubleshooting#sqlite) to learn how
Aug 25 18:22:01 PaaS01 open-webui[10655]: to upgrade.

解决办法:
“软件升级2:升级sqlite”
**************************************************************************
注意:安全方案:源码编译新版 sqlite,**局部部署,不替换系统 sqlite**
⚠️严禁 `rpm -Uvh` 直接替换系统 sqlite 包,系统 dnf、sealer、部分系统组件强依赖内置 sqlite,替换系统包会直接操作系统损坏。
编译出高版本 sqlite 库,给 py312 虚拟环境使用;系统全局 sqlite 依旧保留 3.32.3,操作系统不受任何影响。
**************************************************************************

**************************************************************************
## 问题2:open‑webui全部版本要求 Python >=3.11
**************************************************************************
openEuler 系统自带 python3 版本低于 3.11,pypi 找不到适配包,所以 pip 安装直接失败。
[root@PaaS01 opt]# pip3 install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: [https://pypi.tuna.tsinghua.edu.cn/simple](https://pypi.tuna.tsinghua.edu.cn/simple)
ERROR: Ignored the following versions that require a different python version: 0.1.124 Requires-Python <3.12.0a1,>=3.11; 0.1.125 Requires-Python <3.12.0a1,>=3.11; 0.10.0 Requires-Python <3.13.0a1,>=3.11;
ERROR: Could not find a version that satisfies the requirement open-webui (from versions: none)
ERROR: No matching distribution found for open-webui

解决办法:
## 确认当前 python 版本
python3 --version
升级Python3.12:参考“1、openEuler 源码编译 Python3.12(从 3.7.9 升级到 3.12)”

**************************************************************************
## 问题3:报错The necessary bits to build these optional modules were not found:nis
**************************************************************************
./python -E -S -m sysconfig --generate-posix-vars ;
if test $? -ne 0 ; then
echo "generate-posix-vars failed" ;
rm -f ./pybuilddir.txt ;
exit 1 ;
fi
./python -E -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
The necessary bits to build these optional modules were not found:
nis
To find the necessary bits, look in configure.ac and config.log.
Checked 111 modules (31 built-in, 78 shared, 1 n/a on linux-x86_64, 0 disabled, 1 missing, 0 failed on import)
make[1]: Leaving directory '/opt/Python-3.12.7'
问题描述:
**nis 模块缺失,属于可选模块,不影响主 Python 编译,不是致命错误**,`make altinstall` 仍然可以正常执行,生成的 python3.12 完全可用。
nis=NIS 网络信息服务,一般服务器几乎用不到,open‑webui、doc2excel 脚本都不需要这个模块,可以直接忽略。
解决办法:

可选模块暂无影响;

**************************************************************************
## 问题4:默认/tmp目录使用tmpfs内存空间不足
**************************************************************************
报错:[Errno 28] No space left on device
解决办法:
### 方法一:使用根“/”目录下空间
systemctl stop systemd-tmpfiles-setup-dev.service
systemctl disable systemd-tmpfiles-setup-dev.service
systemctl mask systemd-tmpfiles-setup-dev.service
systemctl status systemd-tmpfiles-setup-dev.service
mount | grep "tmp"
umount -lf /tmp
systemctl disable tmp.mount
systemctl status tmp.mount
systemctl mask tmp.mount
systemctl status systemd-tmpfiles-setup-dev.service
reboot
### 方法二:使用指定目录下空间
**指定缓存目录变量TMPDIR
export TMPDIR=/opt/pip_tmp
mkdir -p /opt/pip_tmp
**测试下载
/usr/local/python312/bin/pip3.12 install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
**清理临时目录
rm -rf /opt/pip_tmp
**************************************************************************
*** 由于笔记本vmware BCoe21.10及openeuler20.03安装大量CPU模式安装cuda,撑爆/tmp目录空间;
*** 重要补充:open‑webui 会自动拉取 torch、cuda、cudnn 几百 MB 包,**但是你本机没有 NVIDIA 显卡!**
你这台 PaaS01 服务器无 N 卡,不需要 cuda,直接安装会下载大量无用 cuda 包,浪费磁盘空间。
*** 无 GPU 环境安装 open‑webui(CPU 模式,不装 cuda)
export TMPDIR=/opt/pip_tmp
mkdir -p /opt/pip_tmp
export PIP_NO_BINARY="torch torchvision torchaudio"
/usr/local/python312/bin/pip3.12 install open-webui --no-build-isolation -i https://pypi.tuna.tsinghua.edu.cn/simple
⚠️注意:**Ollama 本身已经承担模型推理,open‑webui 只做前端界面,本机不需要 torch GPU 加速**。
**************************************************************************

**************************************************************************
## 问题5:无法调用deepseek-r1模型(由于 Ollama 服务 192.168.190.150:11434节点性能不足,暂时没有安装deepseek-r1模型
**************************************************************************

Connection error: Cannot connect to host 192.168.190.150:11434 ssl:default [Connect call failed ('192.168.190.150', 11434)]
GET /ollama/api/version HTTP/1.1" 500
  1. Open‑WebUI Web 服务本身已经正常工作/_app/version.json 返回200,8080 端口正常,sqlite 版本问题已经彻底解决。
  2. 故障点:Open‑WebUI 无法连通 Ollama 服务 192.168.190.150:11434,网页端模型列表为空,无法调用 deepseek-r1 大模型。
  3. 其余GET /api/models HTTP/1.1 200是 webui 内置接口,和 ollama 无关。

image

 


##########################################################################

##########################################################################
附录B:升级软件
##########################################################################

**************************************************************************
## 软件升级1:openEuler 源码编译 Python3.12(从 3.7.9 升级到 3.12)
**************************************************************************
⚠️重要提醒:**不要卸载系统自带 python3.7.9**,openEuler 系统的 yum/dnf、sealer、系统工具依赖系统自带 Python,删除会直接系统损坏。
采用**并行安装**:Python3.12 编译安装到 `/usr/local/python312`,和系统 3.7 共存,不覆盖系统 python3。
## 重要注意事项

**不要把 `/usr/local/python312/bin` 写入 /etc/profile PATH 全局环境变量**,防止系统命令调用 python 时优先调用 3.12,弄坏 dnf/sealer。
**所有 3.12 程序全部使用**绝对路径**调用。
**系统原有的 `python3` 依旧是 3.7.9,系统工具不受影响。

>
如果 open‑webui 启动报错,把 journalctl 日志贴出来。

# openEuler 源码编译 Python3.12(从 3.7.9 升级到 3.12)


⚠️重要提醒:**不要卸载系统自带 python3.7.9**,openEuler 系统的 yum/dnf、sealer、系统工具依赖系统自带 Python,删除会直接系统损坏。
采用**并行安装**:Python3.12 编译安装到 `/usr/local/python312`,和系统 3.7 共存,不覆盖系统 python3。

**************************************************************************

## i. 安装编译依赖

**************************************************************************
dnf install gcc gcc-c++ make cmake zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y

**************************************************************************
## ii.下载 Python3.12 源码

**************************************************************************
cd /opt
wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz
tar -zxvf Python-3.12.7.tgz
cd Python-3.12.7

**************************************************************************
## iii.配置编译(关键参数,不替换系统 python)

**************************************************************************
./configure --prefix=/usr/local/python312 --enable-optimizations --with-ssl


--prefix=/usr/local/python312`:安装到此目录,**不碰系统自带 python**
--enable-optimizations`:性能优化
--with-ssl`:pip https 网络必须

编译安装(耗时 5‑15 分钟)

make -j$(nproc)
make altinstall

❗**必须用 make altinstall,禁止 make install**,make install 会覆盖系统 python3,系统直接报废。

**************************************************************************

## iv. 验证安装

**************************************************************************

#新python3.12完整路径
/usr/local/python312/bin/python3.12 --version
/usr/local/python312/bin/pip3.12 --version


输出 `Python 3.12.7` 代表编译成功。


⚠️注意:系统默认`python3`仍然指向 3.7.9


python3 --version
# Python 3.7.9 系统原版保留

**************************************************************************
## v. 为 3.12 单独创建虚拟环境(推荐,隔离依赖,用于 open‑webui)

**************************************************************************
#创建虚拟环境目录
/usr/local/python312/bin/python3.12 -m venv /opt/py312_env

#激活虚拟环境
source /opt/py312_env/bin/activate


激活成功提示符前面出现 `(py312_env)`。
此时环境内:`python` / `pip` 就是 3.12 版本。


python --version
# Python 3.12.7

**************************************************************************
## vi. 虚拟环境内安装 open‑webui

**************************************************************************
pip install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple


启动 open‑webui(虚拟环境内执行)


export OLLAMA_BASE_URL=http://127.0.0.1:11434
export DATA_DIR=/opt/open-webui-data
mkdir -p /opt/open-webui-data

open-webui serve --host 0.0.0.0 --port 8080

访问 `http://PaaS01_IP:8080`。

退出虚拟环境命令:`deactivate`

**************************************************************************

## vii. 配置 systemd 服务(后台常驻,自动加载虚拟环境)

**************************************************************************

写入 `/etc/systemd/system/open-webui.service`

[Unit]
Description=Open‑WebUI with Python3.12 venv
After=network.target ollama.service

[Service]
User=root
Environment="OLLAMA_BASE_URL=http://127.0.0.1:11434"
Environment="DATA_DIR=/opt/open-webui-data"
ExecStart=/opt/py312_env/bin/open-webui serve --host 0.0.0.0 --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

systemctl daemon-reload
systemctl enable --now open-webui
systemctl status open-webui


防火墙放行 8080

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload


查看日志:


journalctl -u open-webui -f


## 重要风险清单(务必遵守)

1. ✅`make altinstall`,❌禁止`make install`,防止破坏系统 python3.7。
2. 系统自带`python3`命令永远是 3.7,**不要做软链接替换 /usr/bin/python3**,会弄坏 dnf、sealer。
3. open‑webui 全部运行在`/opt/py312_env`虚拟环境,使用虚拟环境内的`/opt/py312_env/bin/open-webui`二进制。
4. 如果编译报错缺少包,回头补上面 dnf 编译依赖包。

 

**************************************************************************
## 软件升级2:升级sqlite 3.35.0以上版本
**************************************************************************
# 现状确认

openEuler 20.03SP4 自带 sqlite **3.32.3**,Chroma 向量库硬性最低版本 **≥3.35.0**,版本不足直接崩溃。


⚠️严禁 `rpm -Uvh` 直接替换系统 sqlite 包,系统 dnf、sealer、部分系统组件强依赖内置 sqlite,替换系统包会直接操作系统损坏。

## 安全方案:源码编译新版 sqlite,**局部部署,不替换系统 sqlite**

编译出高版本 sqlite 库,给 py312 虚拟环境使用;系统全局 sqlite 依旧保留 3.32.3,操作系统不受任何影响。

### 步骤 1:安装编译依赖


yum install gcc gcc-c++ make libtool readline-devel -y


### 步骤 2:下载 sqlite 源码(3.45.3 稳定版,大于 3.35)


cd /opt
wget https://www.sqlite.org/2024/sqlite-autoconf-3450300.tar.gz
tar -zxvf sqlite-autoconf-3450300.tar.gz
cd sqlite-autoconf-3450300


### 步骤 3:编译安装到独立目录 `/usr/local/sqlite345`,不覆盖系统文件


./configure --prefix=/usr/local/sqlite345
make -j$(nproc)
make install


编译完成后:

- 新版库路径:`/usr/local/sqlite345/lib`
- 新版二进制:`/usr/local/sqlite345/bin/sqlite3`

验证版本:


/usr/local/sqlite345/bin/sqlite3 --version
#输出 3.45.3,符合=3.35.0要求


### 步骤 4:让 py312 虚拟环境优先加载新版 sqlite 库(关键)


只针对 open‑webui 的 py312_env 虚拟环境生效,**不改动系统全局 ldconfig**

#### 方式 1:systemd 服务注入 LD_LIBRARY_PATH(推荐,后台服务使用)

修改 `/etc/systemd/system/open-webui.service`,增加环境变量,优先加载我们编译的 sqlite 库:


[Unit]
Description=Open‑WebUI Python3.12
After=network.target ollama.service

[Service]
User=root
Environment="LD_LIBRARY_PATH=/usr/local/sqlite345/lib"
Environment="OLLAMA_BASE_URL=http://127.0.0.1:11434"
Environment="DATA_DIR=/opt/open-webui-data"
ExecStart=/opt/py312_env/bin/open-webui serve --host 0.0.0.0 --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target


重载 systemd,重启服务


systemctl daemon-reload
systemctl restart open-webui
journalctl -u open-webui -f

 

原理:`LD_LIBRARY_PATH` 优先级高于系统 `/usr/lib64`,python 进程启动优先读取`/usr/local/sqlite345/lib/libsqlite3.so`,系统其他程序仍然读取系统自带 3.32.3,操作系统无风险。

##########################################################################
##########################################################################
##########################################################################
##########################################################################

posted @ 2026-08-26 15:13  gkhost  阅读(6)  评论(0)    收藏  举报