本地可执行文件应该放在哪里?

Modified on: Thu, 12 Jul 2018 05:37:30 +0800

我有perforce版本控制客户端的可执行文件(p4)。我无法将其放在/opt/local中,因为我没有root权限。是否有标准位置需要放在$HOME下?

文件系统层次结构是否有一个约定,表明本地可执行文件/二进制文件需要放在$HOME/bin中?

我找不到维基百科FHS文章中提到的这样的约定。

另外,如果确实存在约定,我是否必须明确包含$HOME/bin目录的路径,或者bin目录的位置是什么?

最佳答案

通常,如果非系统安装和维护的二进制文件需要在系统范围内可供多个用户访问,则应由管理员将其置于/usr/local/bin中。 /usr/local下有一个完整的层次结构,通常用于本地编译和安装的软件包。

如果您是二进制文件的唯一用户,则安装到$HOME/bin是合适的位置,因为您可以自己安装它,并且您将是唯一的消费者。如果从源代码编译软件包,则还可以在$HOME目录中创建部分或完整的本地层次结构。完整的本地层次结构将如下所示。

  • $HOME/bin本地二进制文件
  • $HOME/etc本地二进制文件的特定于主机的系统配置
  • $HOME/games本地游戏二进制文件
  • $HOME/include本地C头文件
  • $HOME/lib本地图书馆
  • $HOME/lib64本地64位库
  • $HOME/man本地在线手册
  • $HOME/sbin本地系统二进制文件
  • $HOME/share独立于本地架构的层次结构
  • $HOME/src本地源代码

运行configure时,您应该通过指定$HOME作为安装默认值的前缀来定义本地安装层次结构。

./configure --prefix=$HOME

现在当make && make install,已编译的二进制文件,包,手册页和库将安装到$HOME本地层次结构中。如果您尚未手动创建$HOME本地层次结构,make install将创建软件包所需的目录。

安装在$HOME/bin中后,您可以将$HOME/bin添加到$PATH中,也可以使用绝对$PATH。默认情况下,某些发行版将$HOME/bin包含在$PATH中。您可以通过echo $PATH进行测试,看看$HOME/bin是否存在,或者将二进制文件放在$HOME/bin中执行which binaryname。如果它返回$HOME/bin/binaryname,那么它默认位于$ PATH中。

作者:,George M

相关问答

添加新评论