我需要多少个二进制文件才能获得“合理”的 Linux 覆盖范围?

我需要多少个二进制文件才能获得“合理”的 Linux 覆盖范围?

抱歉,完全基于意见。请告诉我是否应该去其他地方询问。

我编写了一些免费的工程软件(命令行,无图形),必须以二进制形式分发。问题:您认为我应该生成多少个不同的二进制文件才能获得“合理”的用户覆盖率?我的猜测是,大约 70% 的潜在用户处于专业环境中,其中一半以上可能正在运行 RHEL6 或 RHEL7 的衍生版本。有些可能运行 openSUSE,但我不知道有人使用 Debian。

另外 30% 可能是学生/业余爱好者/等等,他们中的很多人可能运行 Ubuntu 或类似的操作系统。我有一份日常工作,真的不能投入太多时间,所以我对获得 100% 覆盖率、支持非 x86_64 架构、下载大量发行版进行编译和测试、或者支持那些下载发行版只是因为它是最新最好的。

代码是在 Centos-6 上编写的,我生成用于测试的动态和静态二进制文件(以及用于 Windows 的 msys64 二进制文件)。一个明显的选择是制作一个 LSB 版本,但我不确定这是否真的能给我带来什么,或者是否比仅仅安装 Ubuntu 并发布 Ubuntu 版本更好。

有什么想法吗?

编辑-更多信息:

(C++) 代码没有困难的外部依赖项 -ldd报告

linux-vdso.so.1 =>  (0x00007ffd197cf000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039cb400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003e63e00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039cac00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e63200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e62e00000)

静态版本与-static -static-libgcc.file报告称它与 GNU/Linux 2.6.18 链接,我猜这可能是一个问题。该代码使用了 flex、bison 和 Antlr,Bison 版本控制是移植到新系统时唯一真正的问题,但我现在只保留 C++ 输出来解决这个问题。

我想我可能必须在许多系统上运行静态版本才能看看它有多强大。

答案1

如果问题是“我需要定位多少个 Gnu/Linux 发行版才能获得 90% 的用户覆盖率?”,那么

编译并链接静态库:需要以发行版为目标。或者链接到安装在同一目录中的库。

以 x86 为目标(也许是 32 位和 64 位,我不知道有多少 64 位发行版没有 32 位用户空间支持),也许还以树莓派的 ARM 为目标,也许是 sparc,也许是 alpha,mips(你将有进行一项调查,了解有多少潜在用户使用这些产品。

相关内容