ubuntu下打包发布检查脚本

ubuntu下打包发布检查脚本

本地环境

例如本地编译好程序json_test(确保程序能够运行),首先使用ldd查看可执行文件链接的库文件

ldd json_test

输出

        linux-vdso.so.1 (0x00007fff725b8000)
        libjsoncpp.so.1 => /lib/x86_64-linux-gnu/libjsoncpp.so.1 (0x00007f333b72f000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f333b54d000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f333b532000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f333b340000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f333b1f1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f333b7a5000)

使用脚本把库文件都拷贝到./lib目录下

#在json_test同级目录下创建lib
mkdir lib
bash cp.sh

cp.sh内容如下

#!/bin/sh

des="./lib" #你的路径(lib文件夹需要自己创建)

exe="json_test" #发布的程序名称

deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')

cp $deplist $des

echo copy $exe finished

至此,json_test链接的库文件都拷贝到了lib环境下

部署环境

把json_test和./lib目录拷贝到部署环境后

#把./lib目录添加到链接库搜索路径,例如lib绝对路径为/home/test/lib,如果想要长期生效可以写入~/.bashrc文件中
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/test/lib" 

运行json_test进行测试


新的可执行文件部署

当有新的可执行文件需要部署时,可以首先查看当前程序链接的文件是否都能找到

ldd json_test

或者如果知道json_test链接的库名称,例如本地环境下ldd json_test的第二个结果libjsoncpp.so.1,可以用如下指令检查系统是否能找到对应文件

ldconfig -p | grep libjsoncpp

可以检查当前环境中jsoncpp库的版本与本地环境是否一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值