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

基于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