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相关的功能不熟悉,还忽略了系统架构,记录下来以后避免出现相同的错误。

相关推荐
宁波阿成1 小时前
在ubuntu22.04源码级安装sub2api
linux·运维·ubuntu·ai·api·token·中转站
为美好的生活献上中指3 小时前
本地虚拟机部署redis集群
前端·redis·ubuntu·bootstrap·html·redis集群
一叶龙洲3 小时前
Ubuntu开机无法用向日葵远程控制
linux·运维·ubuntu
我是谁??5 小时前
ubuntu22.04 + 驱动570.211.01 + cuda12.8
ubuntu·raid
半壶清水6 小时前
ubuntu中部署开源交换机模拟器bmv2详细步骤
linux·运维·网络·网络协议·tcp/ip·ubuntu
Will_Ye7 小时前
Ubuntu:系统断网后自动重连指定wifi脚本
linux·运维·ubuntu
Codector7 小时前
在Ubuntu中使用Edge侧边栏无法添加和查看同步的侧边栏问题解决
笔记·ubuntu·develop
HABuo7 小时前
【linux(四)】套接字编程--socket套接字及其接口认识
linux·运维·服务器·c语言·c++·ubuntu·centos
Ujimatsu18 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu