ubuntu更改ollama模型目录
时间: 2025-05-12 21:09:27 浏览: 28
### 修改 Ollama 模型默认保存路径的方法
在 Ubuntu 系统中,可以通过调整文件权限以及配置 `ollama.service` 文件来实现对 Ollama 模型存储目录的修改。以下是具体的操作方法:
#### 1. 创建新的模型存储目录
首先,在目标位置创建一个新的文件夹用于存放 Ollama 的模型数据。例如,如果希望将模型存放在 `/home/alex/下载/ollama/models` 中,则可以执行以下命令完成文件夹的创建[^3]。
```bash
mkdir -p /home/alex/下载/ollama/models
```
#### 2. 调整新目录的权限
为了确保 Ollama 可以访问并写入该目录中的内容,需要更改其所属用户和组,并设置合适的文件权限。假设当前用户名为 `root`,则可运行如下命令:
```bash
sudo chown -R root:root /home/alex/下载/ollama/models
sudo chmod -R 777 /home/alex/下载/ollama/models
```
> **注意**: 权限设置应根据实际需求进行调整,建议仅授予必要的最低权限以保障系统安全。
#### 3. 移动现有模型至新目录 (如有必要)
如果有已经存在的模型文件,需先将其迁移到新建的目标路径下。这一步可通过移动命令完成:
```bash
sudo mv /usr/share/ollama/.ollama/models/* /home/alex/下载/ollama/models/
```
此操作会把旧有模型复制到指定的新地址上[^2]。
#### 4. 编辑服务单元文件 (`ollama.service`)
找到并编辑负责启动 Ollama 应用的服务定义文件——通常位于 `/etc/systemd/system/ollama.service` 或者其他安装过程中生成的位置。通过文本编辑器打开它之后,添加或者更新下面两行环境变量声明,用来指明新的模型库所在地点及其网络接口绑定情况:
```ini
Environment="OLLAMA_MODELS=/home/alex/下载/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
```
同时确认顶部部分是否有正确的用户与群组设定,像这样:
```ini
User=root
Group=root
```
最后保存退出。
#### 5. 刷新 systemd 配置并重启服务
做完上述改动以后,记得通知 Systemd 关于这些变化的信息,并重新加载对应的服务实例以便生效最新参数设置:
```bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
```
至此便完成了整个迁移过程。
---
### 示例代码片段展示
下面是完整的脚本形式总结以上步骤:
```bash
#!/bin/bash
# Step 1: Create the new directory structure.
NEW_PATH="/home/alex/下载/ollama/models"
mkdir -p $NEW_PATH
# Step 2: Change ownership and permissions of the new path.
chown -R root:root "$NEW_PATH"
chmod -R 777 "$NEW_PATH"
# Step 3: Move existing models to the new location, if any exist.
OLD_PATH="/usr/share/ollama/.ollama/models/"
if [[ -d "$OLD_PATH" ]]; then
mv "${OLD_PATH}"* "$NEW_PATH"/
fi
# Step 4: Modify the service file with updated paths.
SERVICE_FILE="/etc/systemd/system/ollama.service"
sed -i '/^Environment/d' "$SERVICE_FILE"
echo 'Environment="OLLAMA_MODELS=/home/alex/下载/ollama/models"' >>"$SERVICE_FILE"
echo 'Environment="OLLAMA_HOST=0.0.0.0:11434"' >>"$SERVICE_FILE"
# Ensure proper user/group settings are present within the service definition too.
grep -q '^User=' "$SERVICE_FILE" || echo 'User=root' >>"$SERVICE_FILE"
grep -q '^Group=' "$SERVICE_FILE" || echo 'Group=root' >>"$SERVICE_FILE"
# Reload system configurations & Restart services accordingly.
systemctl daemon-reload && systemctl restart ollama
```
---
阅读全文
相关推荐


















