提取mosquitto_sub的依赖库(从Opkg在Padavan)(搁置:域名解析报错)

2025年12月14日 30点热度

缘由:

    opt环境在晚高峰几乎无法部署成功,下载https://opt.cn2qq.com/opt-file/opttmpg12.tgz总是失败,如果在这个时间段重启路由器,那么需要Opkg安装的mosquitto_sub自然也无法使用。
    遂想把mosquitto_sub客户端和依赖库都提取出来保存本地直接使用。

结论前置:

    未完成:最终只能IP连接服务端成功;使用域名会报错。因并非唯一选择,此方案不值得继续花时间探索,遂放弃 [25-12-14]
    体积:mosquitto_sub加上所有声明的依赖库,总体积=3.34M,虽然比Go编译的5.87M小2.5M,但在空间还剩55M余量较宽裕的情况下没必要为扣这2.5M体积继续耗费时间,直接用Go写个MQTT程序交叉编译成MIPSEL的静态可执行文件,一小时搞定。

从Opkg安装mosquitto_sub并提取依赖库:

  • 注意事项:
    • 安装opkg后部署的/opt/lib/依赖库,直接拉取整个目录时不会下载软链接,无法直接使用。
    • 也不能直接下载软链接文件,需用cp命令拷贝出来再下载到本地。
  • 先用 Opkg 部署 mosquitto-client :
  • ldd 查询 mosquitto_sub 声明的依赖关系 :
  • 批量导出这 9个依赖库 和 1个动态链接器 :
  • 完成。下载 /opt/mylib/ 到本地。

本地上传mosquitto_sub和依赖库测试:

  • 注意事项:
    • 路径:动态链接器ld.so.1必须存放在/opt/lib/目录,否则报错:-sh: ./mosquitto_sub: not found
    • 权限:除了mosquitto_sub客户端,动态链接器ld.so.1也必须授予执行权限,否则报错:-sh: ./mosquitto_sub: Permission denied
  • 先将路由器恢复成无opkg状态:【配置扩展环境】-【opt 强制安装】禁用,重启路由器。
  • 上传:mosquitto_sub客户端、ld.so.1动态链接器,和其他9个依赖库到 /opt/lib/ 目录,并授予执行权限:
  • ldd 查询 mosquitto_sub 声明的依赖关系:
  • 运行mosquitto_sub:使用域名连接报错Unable to connect (Lookup error.):
  • 运行mosquitto_sub:使用IP连接成功:
  • 结束。

书三拾

不积跬步无以至千里