DingTalk Fedora Packager#
把官方钉钉 Linux
.deb包重新打成 Fedora 可安装的.rpm。
这个项目不是通用 deb -> rpm 转换器,只处理钉钉包,并固化了 Fedora 上实际踩到的兼容问题。
处理代码#
![[build_dingtalk_rpm.py]]
背景#
官方钉钉 Linux 包主要面向 Debian/Ubuntu 系发行版。直接原样转换成 RPM 后,在 Fedora 上会遇到几个典型问题:
- 菜单入口执行
/opt/apps/com.alibabainc.dingtalk/files/Elevator.sh,它会走钉钉自带的预加载逻辑。 - 包内旧版
libm.so.6会遮住 Fedora 系统库,导致GLIBC_2.38、GLIBC_2.43等符号找不到。 dingtalk_dll.so、libconference_new.so带有 executable stack 标记,Fedora 会拒绝加载。- RPM 如果声明拥有
/usr/bin、/usr/share/applications这类系统目录,会和filesystem包冲突。
这里的处理思路参考了 zhullyb/dingtalk-for-fedora,并整理成一个可以直接处理本地 .deb 的脚本。
已验证版本#
本次实际处理并验证通过的钉钉版本:
com.alibabainc.dingtalk_8.1.0.6021101_amd64.deb生成并验证通过的 Fedora RPM:
com.alibabainc.dingtalk-8.1.0.6021101-4.x86_64.rpm验证环境为 Fedora 44 x86_64,glibc 2.43。其他钉钉版本可以用脚本尝试处理,但需要重新验证启动和会议等核心功能。
环境依赖#
构建依赖:
sudo dnf install python3-rpm rpm cpio xz patchelf binutils tar运行依赖会写进生成的 RPM,安装时由 dnf 自动处理: