我有一些运行系统检查的bash脚本.这些脚本从文件/ etc / healthchecks / config中获取配置选项.
连同配置文件,我有一个共享的函数文件.脚本应该能够获取该文件并运行其中的功能.
基于Filesystem Hierarchy Standard,我应该在哪里放置共享函数文件?它不是一个配置,所以它似乎不属于/ etc,但它也没有被执行所以/usr/bin似乎不正确.也许/usr/lib?
解决方法
您应该将您的healthchecks可执行文件放在/usr/local / bin或/ opt / bin中.如果您看到您的文件夹/ opt为空,则表示您的
Linux发行版不使用它.所以,合适的地方是/usr/local.
/usr/local和/ opt是必须放置每个“手动”包/程序的地方. / usr用于由包管理器管理的包(即dpkg).根据FHS,/ opt是手动包的“标准位置”,但debian发行版使用/usr/local代替.
对于配置文件,它们必须放在/usr/local / etc上,因为/ etc用于自动包和其他系统程序的配置文件.
您的共享功能的正确位置是/usr/local / share(/usr/share用于自动包的共享文件).设计为只读且独立于arquitecture的每个文件都属于/usr/share或/usr/local / share(如果它们由“自动”或“手动”包拥有).
/usr/lib用于动态和静态二进制库(.so或.a),而不用于“解释”库/函数.
通常,解释器在/ etc / share /中为每个版本都有不同的子文件夹,在每个版本文件夹中,脚本,语言环境,测试,样本等的文件夹都有不同的文件夹.
如果有一天您为包健康检查创建了一个官方存储库,则可以将/usr/local / healthchecks内容迁移到/usr/healthchecks和/ etc / healthchecks.