如何单独构建osqueryi二进制文件以适配应用集成?
单独构建轻量化osqueryi的方法
osquery的构建系统支持单独编译osqueryi,早期版本确实能生成远小于osqueryd的独立二进制文件,以下是具体操作步骤:
1. 准备基础构建环境
先搞定osquery的基础构建依赖——CMake、C++编译器(GCC/Clang)、Python这些是必须的,不用管osqueryd相关的服务类依赖,能省不少事。
2. 拉取指定版本的osquery源码
要拿到早期轻量化的osqueryi,建议切换到v4.x或更早的tag(这些版本里两者体积差更明显):
git clone https://github.com/osquery/osquery.git cd osquery git checkout tags/v4.9.0 # 这里举个例子,你可以选更早的合适版本
3. 仅编译osqueryi目标
用CMake指定跳过osqueryd、扩展和测试代码,只构建osqueryi:
mkdir build && cd build cmake .. -DOSQUERY_BUILD_TESTS=OFF -DOSQUERY_BUILD_DAEMON=OFF -DOSQUERY_BUILD_EXTENSIONS=OFF make osqueryi -j$(nproc)
参数说明:
-DOSQUERY_BUILD_DAEMON=OFF:直接禁用osqueryd守护进程的构建-DOSQUERY_BUILD_EXTENSIONS=OFF:关闭扩展模块,进一步压缩体积-DOSQUERY_BUILD_TESTS=OFF:跳过测试代码,加快编译速度
4. 检查结果
编译完成后,build/osqueryi就是你要的独立二进制文件,用下面的命令查看体积:
ls -lh build/osqueryi
早期版本的这个文件体积基本能控制在30MB左右,符合你的需求。
额外的体积优化技巧
- 开启Release编译:CMake里添加
-DCMAKE_BUILD_TYPE=Release,既能压缩体积又能提升性能 - 剥离调试符号:编译完成后执行
strip build/osqueryi,能进一步减小文件大小
内容的提问来源于stack exchange,提问作者Helge Hannisdal
相关产品推荐
相关产品推荐

