Administrator
发布于 2026-01-04 / 19 阅读
0
0

Valgrind实战-本地编译valgrind部署到生产环境

1、下载源码

从如下地址手动下载源码:
https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2

或者:

# 下载源码(valgrind-3.25.1.tar.bz2 为例)
wget https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2

下载至编译服务器任意目录,笔者下载了最新的valgrind-3.25.1.tar.bz2

image-cTTo.png

2、源码编译

# 下载源码(以 3.25.1 为例)
tar -xjf valgrind-3.25.1.tar.bz2
cd valgrind-3.25.1

# 配置并编译(指定安装路径)
./configure --prefix=/opt/valgrind  # 生产环境目标路径
make -j$(nproc)                     # 并行编译

3、打包二进制和依赖

# 在编译环境中安装到临时目录(不污染系统)
make install DESTDIR=/tmp/valgrind-pkg
cd /tmp/valgrind-pkg
tar -czf valgrind-bin.tar.gz ./opt/valgrind  # 打包二进制

image-eRUA.png

4、迁移到生成环境

将valgrind-bin.tar.gz拷贝到生产环境任意目录

image-vRkP.png

解压并配置环境变量路径

tar -xzf /tmp/valgrind-bin.tar.gz -C /	#执行解压
echo 'export PATH=/opt/valgrind/bin:$PATH' | sudo tee /etc/profile.d/valgrind.sh
source /etc/profile.d/valgrind.sh  # 立即生效

5、生产环境验证

valgrind --version                          # 检查版本
valgrind ls -l                              # 简单命令测试

image-Kgbj.png

6、注意事项

  1. 动态依赖检查
    ldd /opt/valgrind/bin/valgrind # 查看依赖的共享库
  • 关键点:
    • 确保生产环境的 GLIBC 版本 ≥ 编译环境(可通过 ldd --version 检查)。
    • 若依赖库版本不一致,需在编译时静态链接或单独打包依赖库。
  1. 卸载与回滚
    sudo rm -rf /opt/valgrind                   # 删除安装目录
    sudo rm /etc/profile.d/valgrind.sh          # 移除环境变量
    

评论