![有多少种架构和操作系统](https://linux22.com/image/30185/%E6%9C%89%E5%A4%9A%E5%B0%91%E7%A7%8D%E6%9E%B6%E6%9E%84%E5%92%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.png)
我正在尝试编写一个Python脚本,该脚本应该可以在所有基于Linux的操作系统上运行。 python 脚本调用我已编译并包含在脚本中的一些现有工具(例如 pathload 和 iperf)的可执行文件。
为此,我需要编译可在所有 Linux 操作系统和体系结构上运行的可执行文件。我目前已经为 32 位和 64 位 Ubuntu 编译了它,但它不能在 redhat 系统上运行(依赖问题)。有人可以告诉我所有流行的操作系统类型(基于 debian、基于 redhat、基于 archlinux 和任何其他吗?) 都存在什么,以便我可以为它们编译可执行文件?
另外,有没有更好的方法来完成这个任务?
如果我需要改写问题,请告诉我。
答案1
Also, is there any better way of achieving this task?
是的,我至少想到了两种方法:
- 您可以分发源代码。 “Unix”有着通过源代码进行“移植”的悠久传统。请注意,iperf 和 pathload 都是按源分配的,并且都用于
autoconf
“授予”可移植性(这并非偶然)。您应该“仅”在应用程序安装程序过程中自动执行编译。 - 如果您的应用程序仅在 Linux 上运行,您可以使用类似的工具openSUSE 构建服务那可以
used for development of the openSUSE distribution and to offer packages from same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions
。您只需要编写一个配置文件,OBS 就会为许多 UNIX 发行版编译并打包您的应用程序。
显然,这两种解决方案的实施都需要一些时间和工作。
答案2
Linux 内核运行在很多体系结构上,arch
其源代码中的目录列出了 32 个(有些确实有好几个,例如 x86 和 x86_64,arm 是名副其实的动物园)。总数可能接近 50。