注意:文章是根据发表时的互联网公开知识背景所写,当前有可能部分内容已失效,请根据需要查阅相关资料。

基于WSL2 + Ubuntu24.04 + Ollama + DeepSeek + Open-WebUI进行本地大模型部署


安装WSL2和Ubuntu24.04

安装WSL2

  • 使用PowerShell以管理员身份运行以下命令
1
2
3
4
5
# 安装适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 重启电脑

  • 使用PowerShell以管理员身份设置wsl版本为2

1
wsl --set-default-version 2

安装Ubuntu24.04

  • 使用PowerShell以管理员身份运行以下命令
1
2
3
4
5
6
7
8
# 查看可用Linux发行版列表
wsl --list --online

# 安装Ubuntu24.04
wsl --install -d Ubuntu-24.04

# 查看是否安装完成
wsl -l -v
  • 配置wsl网络类型
    在windows系统的C:\Users\【用户名】目录下新增.wslconfig文件,输入以下内容并保存。
1
2
3
4
5
[wsl2]
networkingMode=mirrored

[experimental]
hostAddressLoopback=true
  • 启动Ubuntu并配置用户名和密码
1
wsl -d Ubuntu-24.04
  • 迁移Ubuntu至其他磁盘
1
2
3
4
5
6
7
8
9
10
11
#导出wsl实例
wsl --export Ubuntu-24.04 D:\WSL\ubuntu2404.tar

#注销当前wsl实例
wsl --unregister Ubuntu-24.04

#导入实例
wsl --import Ubuntu-24.04 D:\WSL\ubuntu2404\ D:\WSL\ubuntu2404.tar

#设置默认用户名,即配置Ubuntu时所使用的用户名
ubuntu2404.exe config --default-user 用户名 #某些情况下报错,不识别ubuntu2404命令,则跳过这条命令。
  • Ubuntu配置国内镜像

    1
    2
    3
    4
    5
    #备份当前镜像配置
    sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

    #编辑镜像配置
    sudo vim /etc/apt/sources.list.d/ubuntu.sources

    复制以下内容到ubuntu.sources文件保存,参考https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Types: deb
    URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
    Suites: noble noble-updates noble-backports
    Components: main restricted universe multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    # Types: deb-src
    # URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
    # Suites: noble noble-updates noble-backports
    # Components: main restricted universe multiverse
    # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    # 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
    Types: deb
    URIs: http://security.ubuntu.com/ubuntu/
    Suites: noble-security
    Components: main restricted universe multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    # Types: deb-src
    # URIs: http://security.ubuntu.com/ubuntu/
    # Suites: noble-security
    # Components: main restricted universe multiverse
    # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    # 预发布软件源,不建议启用

    # Types: deb
    # URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
    # Suites: noble-proposed
    # Components: main restricted universe multiverse
    # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    # # Types: deb-src
    # # URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
    # # Suites: noble-proposed
    # # Components: main restricted universe multiverse
    # # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

    更新镜像源

    1
    2
    sudo apt update
    sudo apt full-upgrade -y

安装docker

安装步骤参考地址

1
https://docs.docker.com/engine/install/ubuntu/

  • 配置docker
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 卸载旧版docker,可选操作
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings

    #如果报错,重新执行直到成功
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

    sudo chmod a+r /etc/apt/keyrings/docker.asc

    # Add the repository to Apt sources:
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    sudo apt-get update
  • 安装docker
1
2
3
4
5
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#等待安装完成并查看是否安装成功
sudo docker --version
sudo docker images

安装cuda

安装步骤参考地址

1
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_local

  • Cuda Toolkit Installer
1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-ubuntu2404-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2404-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2404-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
  • 查看cuda信息
1
nvidia-smi

安装ollama

  • 方法一:命令行方式安装,可能网速很慢
1
curl -fsSL https://ollama.com/install.sh | sh
  • 方法二:压缩包安装,速度依然很慢
1
2
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
  • 方法三:离线压缩包安装,速度较快,下载完成后注意校验压缩包的哈希值sha256
    • 在sourceforge.net网站上搜索ollama下载压缩包,下载地址参考:
      1
      2
      https://liquidtelecom.dl.sourceforge.net/project/ollama.mirror/v0.5.7/ollama-linux-amd64.tgz?viasf=1
      https://jaist.dl.sourceforge.net/project/ollama.mirror/v0.5.7/ollama-linux-amd64.tgz?viasf=1
    • 下载完成后的压缩包ollama-linux-amd64.tgz拷贝至ubuntu~/home/用户目录下。
      • 拷贝方法一:在windows11资源管理器Linux对应目录下,目录地址参考如\\wsl.localhost\Ubuntu-24.04
      • 拷贝方法二:使用MobaXtermVSCode等软件拷贝,参考windows和wsl资源如何共享。
    • sourceforge.net网站上搜索ollama也可下载OllamaSetup.exe,用于在windows环境安装ollama,下载地址参考:
      1
      2
      https://jaist.dl.sourceforge.net/project/ollama.mirror/v0.5.7/OllamaSetup.exe?viasf=1
      https://liquidtelecom.dl.sourceforge.net/project/ollama.mirror/v0.5.7/OllamaSetup.exe?viasf=1
    • 在wsl中使用离线包安装ollama
      1
      sudo tar -C /usr -xzf ollama-linux-amd64.tgz
    • 安装完成,查看ollama安装情况
      1
      2
      3
      ollama serve
      ollama ls
      ollama ps

ollama拉取deepseek

  • 根据硬件配置情况拉取deepseek模型
    模型类型 最小GPU配置 CPU配置 内存要求 磁盘空间
    R1-Zero全量版 RTX 4090(24GB) Xeon 8核+128GB 128GB 500GB
    R1蒸馏版-70B RTX 3090(24GB) i9-13900K+64GB 64GB 320GB
    R1蒸馏版-14B RTX 3060(12GB) Ryzen 7+32GB 32GB 80GB
    R1蒸馏版-1.5B GTX 1650(4GB) 任意四核处理器+8GB 8GB 12GB
  • ollama拉取deepseek-r1:1.5b
    1
    ollama run deepseek-r1:1.5b
  • 等待拉取完成并测试

    拉取速度在90%及以后很慢时,使用Ctrl+C停止拉取,重启执行ollama拉取deepseek命令,会继续拉取。

docker安装open-webui

  • 使用官方镜像源速度较慢
1
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • 使用第三方镜像源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

#如果是先pull镜像再运行
docker run -d -p 3000:8000 --add-host=hosy.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main


#启动镜像
docker start open-webui

#停止镜像
docker stop open-webui

#查看容器日志
docker logs open-webui
  • 使用open-webui
    浏览器访问地址:http://127.0.0.1:3000

  • docker中部署open-webui相关故障问题
    参考地址:https://docs.openwebui.com/troubleshooting/connection-error/

    • open-webui无法关联ollama模型

      • 报错信息1
      1
      ERROR [open_webui.routers.ollama] Connection error: Cannot connect to host host.docker.internal:11434 ssl:default [Connect call failed ('172.17.0.1', 11434)]

      解决办法1
      在open-webui网页设置-管理员设置-外部连接-Ollama API-管理Ollama API连接http://host.docker.internal:11434修改为http://127.0.0.1:11434并进行保存。

      • 报错信息2
      1
      ERROR [open_webui.routers.ollama] Connection error: Cannot connect to host 127.0.0.1:11434 ssl:default [Connect call failed ('127.0.0.1', 11434)]

      解决办法2
      重新创建运行docker镜像

      1
      2
      3
      4
      5
      #官方镜像源
      docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

      #第三方镜像源
      docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

pip安装open-webui

使用python pip方式进行安装

  • wsl查看python版本

    1
    python3 --version
  • wsl安装pip

    1
    2
    sudo apt update
    sudo apt install python3-pip
  • 配置pip国内镜像,否则下载open-webui速度会很慢

    1
    2
    mkdir ~/.pip
    sudo vim ~/.pip/pip.conf
    • pip.conf输入以下内容并保存
    1
    2
    3
    4
    5
    6
    7
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    extra-index-url =
    https://mirrors.aliyun.com/pypi/simple/
    https://pypi.mirrors.ustc.edu.cn/simple/
    [install]
    trusted-host = pypi.tuna.tsinghua.edu.cn
    • pip配置
    1
    2
    pip config list #查看配置
    pip3 install --upgrade pip #更新pip索引
  • pip安装open-webui

    1
    2
    #ubuntu24.04需要使用--break-system-packages强制安装,否则报错
    pip install open-webui --break-system-packages --ignore-installed
  • 启动open-webui

    1
    2
    3
    4
    open-webui serve

    #指定端口启动
    open-webui serve --port 8081
  • 浏览器查看open-webui进行测试
    浏览地址:http://127.0.0.1:3000 (也可指定端口号启动open-webui)

  • open-webui问题处理

    • 启动报错
      • 安装ffmpeg重新启动
        1
        sudo apt-get install ffmpeg
    • open-webui网页长时间白屏
      等待一段时间,在设置-管理员设置-外部连接,关闭OpenAI API。
    • open-webui网页联网搜索
      设置-管理员设置-联网搜索中选择duckduckgo
  • open-webui更新

    1
    pip install --upgrade open-webui --break-system-packages