在 Ubuntu 22.04 上安装了 Ollama 并通过 systemctl 设置为系统服务后,如果你想修改模型的存储目录(默认通常是在 ~/.ollama/models),可以通过以下步骤操作:


✅ 方法:通过环境变量 OLLAMA_MODELS 修改模型目录

Ollama 允许通过环境变量 OLLAMA_MODELS 来指定自定义的模型存储路径。

步骤如下:

  1. 停止 Ollama 服务

    sudo systemctl stop ollama
    
  2. 创建新的模型目录(可选)

    sudo mkdir -p /your/custom/model/path
    sudo chown $(whoami):$(whoami) /your/custom/model/path
    

    例如:

    sudo mkdir -pdev /data/ollama/models
    sudo chown $USER:$USER /data/ollama/models
    
  3. 编辑 systemd 服务文件

    Ollama 的 systemd 服务文件通常位于 /etc/systemd/system/ollama.service 或由包管理器安装在 /lib/systemd/system/ollama.service

    建议使用 systemctl edit 命令来覆盖配置(避免直接修改原始文件,便于升级):

    sudo systemctl edit ollama
    

    在打开的编辑器中添加以下内容:

    [Service]
    Environment="OLLAMA_MODELS=/your/custom/model/path"
    

    保存并退出(如使用 nano,按 Ctrl+O 回车,再 Ctrl+X)。

  4. 重新加载 systemd 配置并启动服务

    sudo systemctl daemon-reload
    sudo systemctl start ollama
    
  5. 验证是否生效

    查看服务状态和环境变量是否加载成功:

    systemctl show ollama --property=Environment
    

    应该看到包含 OLLAMA_MODELS=/your/custom/model/path

    你也可以 pull 一个模型测试路径是否正确:

    ollama pull llama3
    ls /your/custom/model/path
    

🔒 注意事项

  • 确保新目录对运行 ollama 服务的用户(通常是你的当前用户或 root)有读写权限。
  • 如果你是用 root 安装的 Ollama 服务,但希望以普通用户身份运行,请确认服务文件中的 User= 字段设置正确(默认可能未指定,会以 root 运行)。可通过 systemctl edit ollama 添加:
    [Service]
    User=your_username
    Environment="OLLAMA_MODELS=/your/custom/model/path"
    
  • 如果之前已经下载过模型,默认位置的模型不会自动迁移,你需要手动将 ~/.ollama/models 下的内容复制到新目录(可选)。

📌 补充:查看当前模型目录

你可以通过以下命令查看 Ollama 当前使用的模型目录(如果已启动):

ps aux | grep ollama

观察启动命令中是否包含 OLLAMA_MODELS 环境变量。

或者进入容器/进程环境(高级):

sudo cat /proc/$(pgrep ollama)/environ | tr '\0' '\n' | grep OLLAMA_MODELS