前段时间沉迷对OpenWeb UI的部署与各种优化,不过一直都是用的docker部署的,感觉自己的可操作空间被缩小了许多😋,为什么我不能从源代码中进行部署呢。
罪恶就此开始🤡
操作平台是一台Linux-18.04的1.4T内存,8卡2080ti机架服务器。上面跑着几个我自己的实验项目😢。
git clone https://github.com/open-webui/open-webui.git
cd open-webui/
# Copying required .env file
cp -RPp .env.example .env
# Building Frontend Using Node
npm install
npm run build
cd ./backend
# Optional: To install using Conda as your development environment, follow these instructions:
# Create and activate a Conda environment
conda create --name open-webui-env python=3.11
conda activate open-webui-env
# Install dependencies
pip install -r requirements.txt -U
# Start the application
bash start.sh
这是来自https://docs.openwebui.com/getting-started/的教程代码,主要由三部分构成。1、下载仓库;2、构建npm前端;3、python环境构建及运行
我的服务器在第步就G了🤯。
根据OpenWeb UI要求,Node.js >= 20.10,但是我的服务器的node.js的版本很低,所以我需要升级node.js。sudo apt install 了一个 n管理nodejs版本,然后下载了一个nodejs 20.10.然后进行install时出现:
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
服务器报GLIBC_2.28没有找到,即我的默认GLIBC版本可能太低了。作为小白,我也不知道GLIBC是什么,
有什么用,想着可能就是普通的什么依赖吧。于是便使用国内大模型ChatGLM教着我进行GLIBC版本的安装。
然后罪魁祸首的一串命令:
这个代码直接把默认的glibc版本给定掉了,然而ubuntu18.04的glibc版本最高支支持到2.27🙀。
然后就是服务器的所有命令都无法使用:sudo,cd,cp,mv,ls,等等都不能使用。过一会服务器就崩溃了。SSH不能🙀,这时我意识到了问题的严重性。
崩溃关机都关不了😱,然后强行物理按键关机重启,报缺关键文件,开机失败。
。
面对这种情况,只有两个方法 ① 使用Ubuntu live切入系统把原始的GLIBC版本改回来,② 或者重装系统。
还好服务器上的东西不多,后面就在自己一声声的卧槽的抱怨中,重装了系统。然后还要重新装一堆系统驱动,一堆深度学习有关的东西。
其实应该是可以选择方案①的,这里又有个意外。我制作错了U盘,我的不是live USB,而是一个普通的装机盘,然后就误打误撞直接重装了。
🤕以下是GPT4给的正确处理方法
启动Live CD/USB:插入Live CD/USB并从中启动系统,选择“尝试Ubuntu”或类似选项进入Live系统。
挂载根文件系统:
打开终端。
确认你的根文件系统所在的分区。可以使用
lsblk
或fdisk -l
命令来查看。例如,如果根分区是/dev/sda1
:sudo mount /dev/sda1 /mnt
挂载其他必要的文件系统(如有):
如果有单独的
/boot
或/home
分区,也要挂载它们:sudo mount /dev/sda2 /mnt/boot sudo mount /dev/sda3 /mnt/home
进入chroot环境:
切换根目录到挂载的文件系统:
sudo chroot /mnt
恢复符号链接:
查找系统默认的GLIBC库文件。默认情况下,GLIBC库文件通常在
/lib/x86_64-linux-gnu
目录中。例如,如果默认的动态链接器文件是ld-2.27.so
:ln -sf /lib/x86_64-linux-gnu/ld-2.27.so /lib64/ld-linux-x86-64.so.2
请根据你的具体系统版本调整文件名。
退出chroot环境并重启系统:
exit sudo reboot