官方 只給了源碼,我不想每次都編譯,應該是可以直接複製到其他的系統上使用
要求
- 系統架構 / 版本一致:目標系統和編譯系統的操作系統版本(如都是 Ubuntu 20.04/ CentOS 7)、CPU 架構(如都是 x86_64)必須完全一致,否則會出現 “無法執行” 或 “缺少庫” 的錯誤。
- 依賴庫必須安裝:目標系統不需要編譯環境(如 gcc、make),但必須安裝 spine 運行所需的依賴庫(如 MySQL 客户端庫、SNMP 庫等)。
文件網盤備份下載地址:https://xyweb.lanzout.com/b004j5sktc 密碼:dzlt
1、檢查CPU架構一致
- root@Cacti:/opt#
uname -m
x86_64
2、檢查系統版本(編譯程序的系統如下)
- root@Cacti:/opt#
cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.2
ID=debian
3、查看spine依賴的庫(目標系統必須有這些庫) 庫文件網盤備份https://xyweb.lanzout.com/ipIcH3fndlub
- root@Cacti:/opt#
ldd /usr/local/spine/bin/spine
linux-vdso.so.1 (0x00007ffc21546000)
libnetsnmp.so.40 => /lib/x86_64-linux-gnu/libnetsnmp.so.40 (0x00007c2dbc6e4000)
libmariadb.so.3 => /lib/x86_64-linux-gnu/libmariadb.so.3 (0x00007c2dbc689000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007c2dbc599000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007c2dbc3a3000)
libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007c2dbc295000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007c2dbbc00000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007c2dbc273000)
/lib64/ld-linux-x86-64.so.2 (0x00007c2dbc86d000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007c2dbbb36000)
linux-vdso.so.1是內核級的虛擬庫,它不存在於磁盤的任何目錄中,而是由 Linux 內核在程序運行時自動映射到進程的地址空間,所有運行在 Linux 系統上的 x86_64 架構程序,都會自動加載這個虛擬庫,無需手動安裝或複製。
4、安裝所有依賴庫(對應ldd輸出的庫)和運行依賴
4.1 Ubuntu/Debian
安裝運行依賴( Ubuntu/Debian )
- root@Cacti:/opt#
apt install -y libmysqlclient-dev libssl-dev libsnmp-dev zlib1g-dev
依賴庫( Ubuntu/Debian )
- root@Cacti:/opt#
apt install -y libsnmp40 libmariadb3 libssl3 libcrypto3 zlib1g libzstd1
包名對應關係:
libnetsnmp.so.40 → libsnmp40
libmariadb.so.3 → libmariadb3
libssl.so.3/libcrypto.so.3 → libssl3/libcrypto3(Ubuntu 22.04+ 版本)
libz.so.1 → zlib1g
libzstd.so.1 → libzstd1
libm.so.6/libc.so.6//lib64/ld-linux-x86-64.so.2:是 Linux 系統核心庫(glibc),所有 Linux 系統默認自帶,無需安裝。
4.2 CentOS/RHEL
安裝運行依賴( CentOS/RHEL )
- root@Cacti:/opt#
yum install -y mysql-community-devel openssl-devel net-snmp-devel zlib-devel
依賴庫( CentOS/RHEL )
- root@Cacti:/opt#
yum install -y net-snmp-libs mariadb-connector-c-libs openssl-libs zlib zstd-libs
包名對應關係:
libnetsnmp.so.40 → net-snmp-libs
libmariadb.so.3 → mariadb-connector-c-libs
libssl.so.3/libcrypto.so.3 → openssl-libs(CentOS 9+ 版本)
libz.so.1 → zlib
libzstd.so.1 → zstd-libs
5、驗證安裝是否成功
在目標系統執行以下命令,若能列出庫的路徑,説明安裝成功:
# 檢查libnetsnmp.so.40
ldconfig -p | grep libnetsnmp.so.40
# 檢查libmariadb.so.3
ldconfig -p | grep libmariadb.so.3
補充:查找 spine 依賴的物理庫的方法
# 查找指定庫的物理路徑
find /lib /usr/lib /usr/local/lib -name "libnetsnmp.so.40"
6、複製文件並配置(配置等文件網盤備份https://xyweb.lanzout.com/iUS693fncq6b)
# 創建目錄結構
mkdir -p /usr/local/spine/bin /usr/local/spine/etc
# 文件位置(配置等文件網盤備份鏈接:https://xyweb.lanzout.com/iUS693fncq6b)
root@Cacti:/opt# ls /usr/local/spine/bin/spine /usr/local/spine/etc/spine.conf.dist -lash
472K -rwsr-xr-x 1 root root 471K Jan 9 09:47 /usr/local/spine/bin/spine
4.0K -rw-r--r-- 1 root root 3.6K Jan 9 10:35 /usr/local/spine/etc/spine.conf.dist
# 官方推薦設置權限
chown root:root /usr/local/spine/bin/spine
chmod u+s /usr/local/spine/bin/spine
# 配置spine(可選:修改數據庫連接信息,但我發現好像這裏不需要操作)
cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
vim /usr/local/spine/etc/spine.conf
# 可選:修改以下核心配置(和Cacti的數據庫配置一致),但我發現好像這裏不需要操作:
# DB_Host = localhost
# DB_Database = cacti
# DB_User = cactiuser
# DB_Pass = cactipassword
# DB_Port = 3306
7、測試是否可用
# 驗證版本
/usr/local/spine/bin/spine -v
# 驗證配置(無報錯即正常)
/usr/local/spine/bin/spine -C /usr/local/spine/etc/spine.conf
在Cacti上配置:

