如果我想编写一个可以在任何 Linux 发行版上运行的应用程序,我需要注意什么?

15 linux development

我计划编写一个应用程序,我希望能够在任何 Linux 安装上运行,而无需重写任何代码(除了界面、GNOME 与 KDE 等)。

我对发行版之间差异的细节不是很了解,我也无法提供有关该项目的详细信息,因为它才刚刚进入规划阶段,除了要深入内核以进行交互之外使用尽可能多的计算机硬件。

Nav*_*K N 11

开发时要记住的一些要点,

  1. 使用标准构建系统
  2. 避免硬编码路径
  3. 使用诸如pkg-config查找外部包之类的工具。
  4. 如果您的应用程序具有 GUI,请使用一些框架,例如wxWidgets可以根据您的运行位置呈现本机 UI 元素。
  5. 避免使用不会在其他发行版上运行的包创建依赖项。

完全确保您的应用程序适用于所有发行版的唯一方法是实际运行和测试它。一种方法是为每个发行版创建虚拟机。VirtualBox 可用于执行此操作。我的机器上有大约 8 台虚拟机用于此类测试。

我认为您不能对部署应用程序进行过多概括,因为每个发行版都使用不同的安装包方式。Debian 使用deb和 fedora rpm

  • 只是简单地避免硬编码路径,所有发行版之间的最大区别在于它们的包管理器,以及它们放置东西的位置。假设他们会将每个文件和目录放在与您不同的位置。 (3认同)