Agent + Ollama 部署踩坑记录

做好的Demo,客户需要本地测试,提供Ubuntu图形界面 + ToDesk部署,由于系统配置较低而且没有部署过GNOME,遇到了很多问题,现在一一记录下来以便自己回忆。

1. 部署Agent + 界面前端
  • 问题:Demo顺利完成,发现浏览器无法打开验证,点击已有浏览器没有反应

  • 原因:查资料发现,本机使用ARM架构,Snap与系统兼容不佳,所有Snap安装的应用都可能出问题

  • 解决方式:移除 Chromium Snap 版本,使用 Flatpak 版

  • 过程: (1). 安装 Flatpak:

    bash 复制代码
    sudo apt install flatpak

    (2). 添加 Flathub 软件源并安装 Chromium:

    bash 复制代码
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    flatpak install flathub org.chromium.Chromium

    (3). 从应用菜单启动,或在终端用命令启动:

    bash 复制代码
    flatpak run org.chromium.Chromium

    (4). 解决桌面图标不显示的问题

    安装完成后,如果 Chromium 图标没出现在应用菜单,执行以下命令:

    bash 复制代码
    # 方法一:重启 Flatpak 服务(无需重启系统)
    systemctl --user restart flatpak-portal
    systemctl --user restart xdg-desktop-portal
    systemctl --user restart xdg-desktop-portal-gtk
    
    # 方法二:注销当前用户并重新登录
    # 或者重启系统

    临时解决方案 :每次想启动时,直接在终端输入 flatpak run org.chromium.Chromium 即可。

    (5). 验证安装

    安装成功后,检查版本:

    bash 复制代码
    # 查看已安装的 Flatpak 应用
    flatpak list | grep -i chrom
    
    # 查看 Chromium 版本
    flatpak run org.chromium.Chromium --version

    (6). 再次遇到问题:

    bash 复制代码
    flatpak install flathub org.chromium.Chromium
    
    Note that the directories 
    
    '/var/lib/flatpak/exports/share' 
    '/home/deep/.local/share/flatpak/exports/share' 
    
    are not in the search path set by the XDG_DATA_DIRS environment variable, so applications installed by Flatpak may not appear on your desktop until the session is restarted. 
    
    Looking for matches... 
    error: Unable to load summary from remote flathub: GPG verification enabled, but no summary found (check that the configured URL in remote config is correct)

    检查并修复 Flatpak 远程仓库配置

    bash 复制代码
    # 1. 查看当前 flathub 远程仓库配置
    flatpak remotes -d
    
    # 2. 如果存在配置错误的 flathub,先删除
    flatpak remote-delete flathub 2>/dev/null
    
    # 3. 重新添加 flathub 仓库(不使用 GPG 验证,国内网络更稳定)
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --no-gpg-verify
    
    # 4. 验证添加成功
    flatpak remotes
    
    # 5. 尝试更新
    flatpak update

    又报错:

    bash 复制代码
    flatpak search Chromium No matches found

    切换到国内镜像源

    bash 复制代码
    # 1. 修改现有 flathub 为上交大镜像
    sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub
    
    # 2. 验证修改成功
    flatpak remotes -d
    
    # 3. 直接安装 Chromium(不需要先 update)
    sudo flatpak install flathub org.chromium.Chromium -y
    
    # 4. 如果上面命令报错,先查看远程仓库能否正常访问
    flatpak remote-ls flathub 2>&1 | head -20
2. 运行Demo服务
  • 问题:浏览器可以打开了(遇到的路径权限等问题不在此记录)。Ollama无法启动

  • 原因:上传的Ollama包是AMD的,忘了查看系统架构,服务器架构是aarch64

  • 解决方式:重新安装ARM的Ollama

  • 过程:(1). 查看系统架构

    bash 复制代码
    uname -m  
    aarch64

    (2). 完整服务配置

    ollama.service 复制代码
    [Unit]
    Description=Ollama Service
    After=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/ollama serve
    User=ollama
    Group=ollama
    Restart=always
    RestartSec=3
    Environment="PATH=/usr/local/cuda-12.6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"
    
    [Install]
    WantedBy=default.target
3. 运行Demo网页
  • 问题:部署完成后接口调用ollama,处理过程一半时报错502 bad gateway,模型处理速度超级慢,换了参数量更小的模型也不行

  • 原因:内存太小,无法运行常规模型,Ollama需要调用GPU,

  • 解决方式:增加服务响应时间,安装PyTorch

  • 过程:(1). 修改启动脚本,增加nginx和uvicorn响应时间 Agent服务启动脚本添加--timeout 600

    backend.service 复制代码
    ExecStart=/home/deep/BowAgent/backend/venv/bin/gunicorn \
        -w 4 \
        -k uvicorn.workers.UvicornWorker \
        --timeout 600 \
        -b 127.0.0.1:8000 \
        main:app

    nginx服务端口增加超时时间

    nginx.conf 复制代码
    location /demoapi/ {
        proxy_pass http://127.0.0.1:9000/;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    
        # 增加超时时间
        proxy_connect_timeout 600s;
        proxy_send_timeout 600s;
        proxy_read_timeout 600s;
        fastcgi_read_timeout 600s;
    
        # 增加缓冲区
        proxy_buffer_size 128k;
        proxy_buffers 8 256k;
        proxy_busy_buffers_size 512k;
    
        # 增加临时文件大小
        proxy_temp_file_write_size 256k;
        proxy_max_temp_file_size 2048m;
    }

    (2). 安装PyTorch

    perl 复制代码
    # CMD查看GPU版本(示例:13.0)
    nvidia-smi
    
    # 卸载旧的 PyTorch(如果已安装 CPU 版):
    pip uninstall torch torchvision torchaudio
    
    # 安装 CUDA 13.0 版本:
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
    
    # 验证安装:
    python
    import torch
    print(torch.cuda.is_available())  # 应输出 True

    安装成功但是发现无法使用

    (3). 查看本机显卡信息,安装nvidia-nvm

    bash 复制代码
    lsmod | grep nvidia
    sudo modprobe nvidia_uvm  
    modprobe: FATAL: Module nvidia_uvm not found in directory /lib/modules/5.15.148-tegra

    通过内核5.15.148-tegra发现此服务器是NVIDIA Jetson 设备,无法安装常规torch

4. Jetson 专用的方式安装PyTorch
  • 问题:Ollama无法调用GPU

  • 原因:Jetson 设备使用的不是普通的桌面驱动,而是 L4T (Linux for Tegra) 驱动。之前尝试用普通的 pip install torch 或者通用的 cuda-toolkit 仓库,在 Jetson 上是行不通的。必须按照 Jetson 专用的方式重新配置。

  • 解决方式:下载匹配的包在本地,然后安装

  • 过程:(1). 安装必要的系统依赖:

    bash 复制代码
    sudo apt update
    sudo apt install -y libopenblas-base libopenmpi-dev libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

    (2). 安装缺失的系统库 在安装 PyTorch 之前,先修复常见的依赖缺失问题。

    bash 复制代码
    sudo apt-get update
    # 修复常见的 libcusparseLt.so.0 缺失问题
    sudo apt-get install libcusparselt0
    # 确保安装了 cuDNN
    sudo apt-get install libcudnn8
    # 安装 cuDNN 运行时库
    sudo apt-get install -y libcudnn9-cuda-12
    # (可选)如果安装 torchvision 时需要编译一些自定义算子,可以同时安装开发包
    sudo apt-get install -y libcudnn9-dev-cuda-12

    (3). 社区地址(pypi.jetson-ai-lab.io/jp6/cu126/t... 无法获取包,换为官方网站(developer.download.nvidia.com/compute/red... ) 下载文件,还需要下载torchvision( github.com/ultralytics...

    bash 复制代码
    # 强制从本地文件安装,不使用镜像源
    pip install --no-index --find-links=. torch-2.5.0a0+872d972e41.nv24.08.17622132-cp310-cp310-linux_aarch64.whl
    pip install torchvision-0.20.0a0+afc54f7-cp310-cp310-linux_aarch64.whl

    (4). 重新安装NumPy

    bash 复制代码
    # 卸载当前的 NumPy 2.x
    pip uninstall numpy -y
    
    # 安装 NumPy 1.26.x (与 PyTorch 2.5.0 完全兼容的最新版本)
    pip install 'numpy<2.0.0'

    (5). 系统配置文件添加变量

    .bashrc 复制代码
    export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu/nvidia:/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH
    export PATH=/usr/local/cuda-12.6/bin:$PATH
    export CUDA_HOME=/usr/local/cuda-12.6
5. 再次运行服务和Ollama
  • 问题:Ollama仍然无法调用GPU

  • 原因:在搭载 Jetpack 6 的 Jetson Orin 设备上安装Ollama无法直接使用GPU

  • 解决方式:改用Docker的兼容版本,或下载官方Jetpack 6补丁

  • 过程:(1). 查看元数据包版本:

    bash 复制代码
    sudo apt-cache show nvidia-jetpack
    # 输出
    Package: nvidia-jetpack  
    Source: nvidia-jetpack (6.1)  
    Version: 6.1+b123

    (2). 改用Docker的兼容版本:

    bash 复制代码
    sudo docker run --runtime=nvidia -d --restart=always \
      --name ollama \
      --network host \
      -v ~/ollama:/ollama \
      -e OLLAMA_MODELS=/ollama \
      dustynv/ollama:r36.4.0

    又出现了问题,此方法Ollama版本过低,无法运行qwen3-vl

    (3). 重新安装Ollama,使用官方脚本会自动安装Jetpack 6补丁

    bash 复制代码
    # 1. 更新包列表
    apt-get update
    
    # 2. 安装 zstd
    apt-get install -y zstd
    
    # 3. 现在重新安装 Ollama
    curl -fsSL https://ollama.com/install.sh | sh

    (4). 安装速度慢,换国内优化脚本

    bash 复制代码
    # 直接运行 CNB 提供的国内加速脚本(返回结果显示这是专为国内用户优化的)
    curl -fsSL https://cnb.cool/hex/ollama/-/git/raw/main/install.sh | sh

到此,Demo终于能正常运行了,虽然还是速度很慢,但是测试Demo够用了。主要踩坑原因是对使用显卡GPU相关的功能不熟悉,还忽略了系统架构,记录下来以后避免出现相同的错误。

相关推荐
一叶龙洲10 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
寒水馨11 小时前
Linux下载、安装llama.cpp-b10068(附安装包llama-b10068-bin-ubuntu-vulkan-x64.tar.gz)
linux·ubuntu·llm·llama·本地部署·llama.cpp·推理引擎
hkj88081 天前
Ubuntu 切换java版本
java·linux·ubuntu
hkj88082 天前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
sulikey2 天前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
IT曙光3 天前
在Ubuntu上本地部署Dify?
linux·ubuntu
默默提升实验室3 天前
Ubuntu 22.04.5 配置静态IP,手动安装SSH
ubuntu
初圣魔门首席弟子3 天前
TypeScript 类型系统完全指南:从基础到高级工具类型(知识库版)
linux·运维·ubuntu
TARDIS_20204 天前
VMware配置ubuntu26.04虚拟机桥接
ubuntu
雷工笔记4 天前
什么是Ubuntu?
linux·运维·ubuntu