我想发布一个小软件包,但我不确定如何构建发布目录。
是否有一个 Linux 标准指定如何命名我的发布文件夹中的每个目录以及在其中放置(或不放置)的内容?
例如,我希望编译的库在/lib
中,头文件在/include
- 等等。 我在发行版中还有其他一些文件,我不清楚将它们放在哪个目录中。
是否有一个 Linux 标准指定如何命名每个目录?
或多或少,请阅读文件层次结构标准(另请参阅此内容以及FHS和LSB维基页面)。另请参见 hier(7) 手册页。
但它描述了系统范围的路径。请注意,库通常会进入/usr/lib/
(或/usr/lib/x86_64-linux-gnu/
...),头文件进入/usr/include/
。对于包管理器之外且未知的软件,您将对库使用/usr/local/lib/
,对标头使用/usr/local/include/
。还要注意 pkg 配置。
顺便说一句,您应该考虑使这些目录可配置(至少在构建时)。
另请阅读有关 autoconf 及其configure
脚本的--prefix
参数(默认值为/usr/local/
)。另外,考虑打包你的软件(例如,在 Ubuntu 或 Debian 上打包.deb
软件包)。这也意味着描述依赖关系。 另请参阅GNU stow。
如果你的软件包是一些自由软件(我希望它是,然后发布它的源代码,也许在github上),你可能会从分发打包者那里得到帮助。你应该看看类似的自由软件是如何处理这个问题的。