我在 Web 服务器中设置 prometheus,我注意到每个导出器都是它自己的程序,必须添加到 $PATH 中的目录中。
我的问题是,为这些创建一个专门的目录(例如,“/usr/exporters/bin”,以构成一些示例)并将所有导出程序放在那里,然后将该文件添加到 $PATH 是否有任何好处? 还是最好将程序推送到存放二进制文件的默认目录?
唯一的好处是 中的目录较少$PATH
,因此在查找可执行文件时要搜索的目录较少,但是:
此事件(搜索 中的所有目录$PATH
)很少见。$PATH
条目(可执行文件)保存在 内的哈希表中bash
,该表在启动时或通过 进行更新rehash
。无需$PATH
每次都搜索。
这个活动不贵。所有需要的信息(文件存在和权限允许执行)都可以从文件的目录条目中收集 - 无需访问每个文件。只需阅读目录。
不将可执行文件移动到其他公共目录的原因包括:
您将拥有一个非标准的环境。当你寻求帮助时,需要额外的努力来解释这一点。特别是由非标准环境引起的问题将很难解决。
您将拥有一个非标准的环境。发布更新版本时,您的环境将与更新预期不符。
您将拥有一个非标准的环境。您必须记住并在本周、下周、下周、……永远进行非标准环境更新。
这是没有任何好处的猴子运动。
将二进制文件保存在具有匹配库的目录中是很常见的。用例是版本控制。假设您安装了多个版本的 python(2.7、2.7、3...)并且需要它们但想要定义一个标准。
通常,这使用alternatives
套件和从 eg 到二进制文件的软链接/usr/bin
(在 中定义/etc/alternatives
)。
一个主要优势还可能是在$PATH
. 例如,当您通过本地版本或执行预检查的脚本(例如在shred
ding 文件之前放置警告的脚本)覆盖标准命令时,人们会将它们放在 开头列出的目录中$PATH
,因此本地(用户)版本是仅通过其完整路径运行和标准的。
关于您的问题的更多信息:移动二进制文件不是一个好主意:它们可能依赖于其目录中的其他文件。最多软链接它们。或者只是使用一alternatives
组工具 - 这也有助于保持更多的概览。
归档时间: |
|
查看次数: |
555 次 |
最近记录: |