安装Ollama(Linux平台)

快速安装

  • 官方提供了安装脚本:

通过官方安装脚本在本地安装
curl -fsSL https://ollama.com/install.sh | sh

手工安装

手工安装其实也非常简单,因为Ollama是一个 Go 程序,所以直接下载二进制软件包,解压缩后复制到执行目录就可以使用了:

手工本地安装
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

AMD GPU安装

要支持AMD GPU的版本再附加安装:

手工本地安装AMD GPU版本
curl -L https://ollama.com/download/ollama-linux-amd64-rocm.tgz -o ollama-linux-amd64-rocm.tgz
sudo tar -C /usr -xzf ollama-linux-amd64-rocm.tgz

ARM64安装

ARM版本安装

手工本地安装ARM版本
curl -L https://ollama.com/download/ollama-linux-arm64.tgz -o ollama-linux-arm64.tgz
sudo tar -C /usr -xzf ollama-linux-arm64.tgz

配置Ollama服务(建议)

  • 添加一个Ollama用户和组:

添加一个Ollama用户和组
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
  • 创建服务配置 /etc/systemd/system/ollama.service :

添加ollama服务
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=default.target
  • 设置服务:

启动ollama服务
sudo systemctl daemon-reload
sudo systemctl enable ollama

安装CUDA驱动(可选)

安装NVIDIA Linux驱动 可以使用GPU作为硬件加速推理,如果使用 Debian / Ubuntu Linux / RedHat Linux 可以使用NVIDIA官方仓库进行在线安装。例如 QEMU运行GPU passthrough的虚拟机安装NVIDIA CUDA

安装AMD ROCm驱动(可选)

待实践

启动Ollama

  • 启动服务:

启动服务
sudo systemctl start ollama
sudo systemctl status ollama

配置Ollama模型文件存储位置

默认 Ollama 将模型文件自动下载存储到用户目录下的 ~/.ollama/models ,但是往往用户目录不一定足够空间。此时,可以设置用户的环境变量 OLLAMA_MODELS 来指定位置:

~/.bashrc 配置环境变量 OLLAMA_MODELS
export OLLAMA_MODELS=/huggingface.co/ollama

刚开始时候,我没有考虑清楚 Systemd环境变量 设置,所以导致 Ollama 在下载大模型文件还是存放到了默认的 /usr/share/ollama/.ollama 目录下,我的主机 / 目录空间不足,所以我还将这个目录移动到 /huggingface.co/ 下建立软链接:

建立下载目录软链接
sudo systemctl stop ollama

# 这个 /usr/share/ollama/.ollama 是ollama服务启动时建立的
# 里面有些设置好的文件和目录以及对应ollma账号的权限,所以还是通过停服务移动目录完成
sudo mv /usr/share/ollama/.ollama /huggingface.co/ollama
sudo ln -s /huggingface.co/ollama /usr/share/ollama/.ollama

sudo systemctl start ollama

注意,上述方法是命令行直接运行时的设置,对于启动时候使用 Systemd进程管理器 来运行服务,则需要在 Systemd环境变量 中传递这个环境变量:

/etc/systemd/system/ollama.service 设置 ollama 服务运行环境变量
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_MODELS=/huggingface.co/ollama/models"
Environment="CUDA_VISIBLE_DEVICES=GPU-794d1de5-b8c7-9b49-6fe3-f96f8fd98a19"

[Install]
WantedBy=default.target

参考