【发布时间】:2018-08-11 02:22:50
【问题描述】:
我想发布一个小软件包,但不知道如何构建发布目录。
是否有一个 Linux 标准指定如何命名我的发布文件夹中的每个目录以及在其中放入(或不放入)什么?
例如,我希望编译后的库位于 /lib 中,头文件位于 /include 中 - 等等。我在发行版中还有一些其他文件,我不清楚将它们放在哪个目录中。
【问题讨论】:
标签: linux software-distribution fhs
我想发布一个小软件包,但不知道如何构建发布目录。
是否有一个 Linux 标准指定如何命名我的发布文件夹中的每个目录以及在其中放入(或不放入)什么?
例如,我希望编译后的库位于 /lib 中,头文件位于 /include 中 - 等等。我在发行版中还有一些其他文件,我不清楚将它们放在哪个目录中。
【问题讨论】:
标签: linux software-distribution fhs
是否有指定如何命名每个目录的 Linux 标准?
或多或少,请阅读File Hierarchy Standard(另请参阅this 和FHS 和LSB 维基页面)。另请参阅 hier(7) 手册页。
但它描述了系统范围的路径。请注意,库通常进入/usr/lib/(或/usr/lib/x86_64-linux-gnu/ ...),而头文件进入/usr/include/。对于您的package manager 之外和未知的软件,您将使用/usr/local/lib/ 用于库和/usr/local/include/ 用于标头。还要注意pkg-config。
顺便说一句,您应该考虑使这些目录可配置(至少在构建时)。
另请阅读autoconf 和--prefix 参数(默认为/usr/local/)到其configure 脚本。
另外,考虑打包您的软件(例如,在 Ubuntu 或 Debian 上打包为 .deb packages)。这也意味着描述依赖关系。
另见GNU stow。
如果您的软件包是一些free software(我希望是,然后发布它的源代码,也许在github),您可能会从分发打包者那里获得帮助。你应该看看类似的免费软件是如何处理这个问题的。
【讨论】: