我已经经历过相关主题这里。
我的一位同事已将phantomjs
二进制文件复制到/usr/bin
。在我们的系统中,此二进制文件仅供非 root 用户使用。目前,普通用户可以正常运行此二进制文件,但根据此问题中发布的主题,将非 root 用户使用的二进制文件放在 下似乎不是正确做法/usr/bin
。那么,我是否有理由将其从 移到/usr/bin
,/usr/local/bin
还是最好将其留在/usr/bin
?换句话说,将二进制文件放在/usr/bin
或下会有什么不同吗?/usr/local/bin
或者这是通常遵循的“规则”?
[root@seco01 ~]# which phantomjs /usr/bin/phantomjs [root@seco01 ~]#
PS:/usr/local/bin
包含在内$PATH
。
答案1
文件系统层次结构标准说,每 /usr/local :本地层次结构, 那
/usr/local 层次结构供系统管理员在本地安装软件时使用。当系统软件更新时,它需要确保不被覆盖。它可用于可在一组主机之间共享但在 /usr 中找不到的程序和数据。
本地安装的软件必须放置在 /usr/local 而不是 /usr 中,除非安装它是为了替换或升级 /usr 中的软件。
作为一般经验法则,在现代 Linux 发行版中,由发行版包管理器管理的软件使用/usr/bin
等,而/usr/local/bin
由本地安装的软件使用不是由包管理器管理。这里的典型案例是通过安装的软件make, make install
。静态独立二进制文件也属于这一类。
另一种可能是/opt
。/opt
和之间的区别/usr/local
并不明确,但/usr/local
对于本地安装来说更习惯。以下是 FHS 的说法/opt
:/opt :附加应用程序软件包。
答案2
如果它仅由本地用户使用,那么我认为将其保留在 /usr/bin 中是没有意义的。这也使得访问更加安全。
您发布的链接还表明它符合 FHS(文件系统层次结构标准)。