我正在创建一个不属于Debian官方发行版的软件包(它是专有的,没有源代码),但是可以从私有托管的存储库中获得。我想按照Debian包装说明进行文件放置,并且需要一些帮助来找到正确的文档。
根据Packaging Manuals,{附加的应用程序软件包”位于/opt
中,而/usr/lib
用于打包的应用程序,/usr/local/bin
用于本地软件。我正在寻找这些术语的定义,以解释如何对本地管理员使用软件包安装的第三方应用程序进行分类。
我不是在寻找观点,而是在官方文档中寻找定义/说明。我花了一些时间阅读一些东西,但相信有些东西我想念的,因为似乎可以确定有明确的指示。
如果您认为任何位置都适用于任何软件(但可能会有不同的意见),请回答基本问题,方法是说“没有明确的规则,因为文档不一致。” >
答案 0 :(得分:0)
我不认为 Debian 打包手册(政策、开发人员参考等)或 FHS 对此非常清楚,我猜前者主要是因为他们不关心那些不打算包含在分发中,因为这些策略/最佳实践在那里不容易执行。它们目前仅作为对 FHS 和 Debian 打算支持第三方和本地软件的参考的一部分进行了顺便评论。
不过,这主要是约定问题。但这里相关的是 dpkg 的行为,因为它承担了文件系统的控制权,并且如果它们也在 .deb
包中提供,则会覆盖文件系统上存在但未跟踪的文件。因此,约定是分发版将 /opt 和 /usr/local 单独保留,以保证让第三方项目或本地管理员可以使用他们认为合适的内容.
/opt 层次结构通常用于解包第三方 tarball,或运行一些将内容放置在那里的临时安装程序。 /usr/local 层次结构通常用于在本地构建项目并直接安装在那里,或者直接添加本地脚本。 FHS 以某种方式涵盖了这些内容。
最后真正重要的是不会有路径名冲突。因此,如果您将软件打包为 .deb
,那么 dpkg 将尊重这些,您可以将对象放在 /usr 下(我认为这是打包项目的预期位置,不管他们是否是 Debian 的一部分)。当然,如果您对此感到不舒服,您仍然可以将它们放在 /opt 下(/usr/local 似乎肯定是错误的),只要您可以控制系统涉及以及可能会在那里结束,例如
这可能需要在 Debian 手册和/或 FHS 中明确说明,我将来可能会尝试这样做。