我想将手工制作的脚本放置在其常规位置和文件夹结构中。它当前位于/opt/chkobm/chkobm
,但这似乎是一个不好的做法,因为它需要$PATH
包含通配符路径 ( /opt/*/
)
从TLDP(“Linux 文件系统层次结构”部分):
用户调用的程序位于/opt/'package'/bin目录下。
首先,对于放置此类文件的位置是否存在一致的规则? (/usr/bin
在我看来这是一个可行的替代地方)其次,我应该将手工脚本放置到/opt/*/bin/
并将此路径导出到$PATH
吗?
答案1
/usr/local/bin
是惯用的地方。
最初的想法是在除 之外的每台计算机上
/usr/local
都有一个单独的(“本地”)目录,该目录可能只是从其他地方以只读方式安装。它复制了 的结构。如今,它被广泛认为是保存自编译或第三方程序的好地方。 /usr/local 层次结构供系统管理员在本地安装软件时使用。当系统软件更新时,它需要确保不被覆盖。它可用于可在一组主机之间共享但在 /usr 中找不到的程序和数据。本地安装的软件必须放置在 /usr/local 而不是 /usr 中,除非安装它是为了替换或升级 /usr 中的软件。/usr
/usr
/usr
/usr/local
我倾向于依赖 Debian 定义的 FHS。 Debian 非常擅长执行标准。这就是他们必须要做的说说选择:
目录 /opt/bin、/opt/doc、/opt/include、/opt/info、/opt/lib 和 /opt/man 保留供本地系统管理员使用。软件包可以提供旨在由本地系统管理员放置(通过链接或复制)这些保留目录的“前端”文件,但必须在没有这些保留目录的情况下正常运行。
...
通常,支持系统上的软件包所需的所有数据都必须存在于 /opt/ 中,包括要复制到 /etc/opt/ 和 /var/opt/ 中的文件以及 /opt 中的保留目录。
...
/opt/ 下面的目录结构由软件的打包者决定,但建议将软件包安装在 /opt// 中并遵循与 /opt/ 指南类似的结构。偏离此结构的一个有效原因是支持包的文件可能安装在 /opt//lib 或 /opt//bin 中。
Debian 的定义/usr/local
与 TLDP 链接中的先前定义相同。