基于Ollama在linux上部署DeepseekR1模型
一、部署Ollama
ollama官网:https://ollama.com/
ollama中文文档:https://github.com/onllama/ollama-chinese-document
自动安装:
curl -fsSL https://ollama.com/install.sh | sh
由于虚拟机网络的问题,本次案例使用手动安装的方式进行:
手动安装的官方文档:https://github.com/ollama/ollama/blob/main/docs/linux.md
1、手动下载tgz包
下载链接:https://ollama.com/download/ollama-linux-amd64.tgz
# 如果虚拟机网络可以连接,也可以直接执行
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
# 解压tgz包
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
2、测试ollama是否安装成功
ollama -v
出现版本号即安装成功。

3、配置开机自启服务
# 配置ollama服务文件
vi /etc/systemd/system/ollama.service
服务文件的内容如下:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
本案例就不单独创建ollama用户了,直接root用户走完;
# 刷新配置,让配置生效
sudo systemctl daemon-reload
sudo systemctl enable ollama
# 启动服务
sudo systemctl start ollama
# 查看服务状态
sudo systemctl status ollama

二、部署deepseek-r1:1.5b
ollama run deepseek-r1:1.5b
等待下载:

下载成功后即可对话:

异常:解决CentOS7因版本过低而安装失败的问题
(如安装没问题则跳过该节)
出现第一个报错:

因为CentOS7已经2024年6月已经停止维护,所以版本较低,需要自行升级依赖;
执行该命令查看本机CLIBC版本:strings /lib64/libc.so.6 |grep GLIBC_
可以看到都是2.2.x;2.17,但报错信息显示要2.27;
# 手动安装glibc-2.28:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
# 解压
tar xf glibc-2.28.tar.gz
cd glibc-2.28/ && mkdir build && cd build
# 修改配置
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
此时报错:configure: error: no acceptable C compiler found in $PATH

这是因为本机没有gcc依赖,所以进行安装:
# 安装gcc
yum -y install gcc
再次进行配置(执行):
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
仍然报错:These critical programs are missing or too old: make bison compiler
继续升级make版本:
# 升级GCC(默认为4 升级为8):
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
报错:Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”;
以上报错修改镜像源即可:
1、修改CentOS-SCLo-scl.repo
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
2、修改文件里centos-sclo-sclo部分的为
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
3、修改CentOS-SCLo-scl-rh.repo
vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
4、修改文件里centos-sclo-rh的内容为:
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
5、刷新缓存
yum repolist
yum clean all
yum makecache
修改镜像源结束
到此gcc8已经安装完成:
为gcc重命名,标记版本号;
# devtoolset-8-gcc* 安装完后:
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
升级 make(默认为3 升级为4):
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make
升级完成后,重新配置glibc2.28:
cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
然后还是报错…
configure: error:
*** These critical programs are missing or too old: bison
*** Check the INSTALL file for required versions.
直接安装bison:
yum install -y bison
然后再重新执行配置glibc-2.28的命令即可;
cd /root/glibc-2.28/build
make && make install
install的时间较长,大约需要10~30分钟;
重新执行:ollama -v

CLIBC_2.27 not found的问题已解决!
但仍有其他依赖不存在的问题:
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.25’ not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `CXXABI_1.3.11’ not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22’ not found (required by ollama)
查看本机CXXABI版本信息:
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
更新libstdc++.so.6.0.26
wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
# 报错:ERROR: cannot verify cdn.frostbelt.cn's certificate, issued by '/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Encryption Everywhere DV TLS CA - G2':
# Issued certificate has expired.
#To connect to cdn.frostbelt.cn insecurely, use `--no-check-certificate'.
# 所以根据提示添加参数再次请求:
wget --no-check-certificate https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
# 下载成功后替换系统中的/usr/lib64
cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6
再次验证ollama是否安装成功:
ollama -v
即可解决。