为什么我们必须对 32 位和 64 位 Ubuntu 操作系统的应用程序进行单独的打包。我的意思是为什么有些应用程序分别制作 32 位和 64 位,而有些应用程序却没有?
如果我们为 64 位操作系统制作 64 位包装,是否有什么优势?
答案1
简单地说,并非所有应用程序都是编译的 32 位或 64 位二进制文件。
- 大多数 Python 库脚本在运行时由本机 Python 二进制文件“编译”(根据系统,将以 32 位或 64 位模式运行)。Java 也一样。
- 有些软件包只是另一个软件包的资源,可以在 32 位和 64 位软件包之间共享(例如内核源包)。
按照架构分离的软件包要么被编译为机器代码,要么过于依赖与架构相关的依赖项,要么内部包含与架构相关的代码(但似乎不太可能)。
“胖”包和二进制文件是过去曾尝试过的东西,但实际上这会使大多数二进制文件和库的大小增加一倍,并引入无法预见的错误。这根本不是一个值得付出代价的优势。
还值得考虑的是,在大多数情况下,开发人员实际上不需要做任何事情来获取特定于体系结构的软件包。他们会将它们推送到 Launchpad 等构建平台,然后 Launchpad 将返回一堆 32 位、64 位和 ARM 变体软件包。