ubuntu/linux中多个同名二进制文件

ubuntu/linux中多个同名二进制文件,linux,ubuntu,Linux,Ubuntu,我最近安装了一个webframeworkplay(),希望在系统路径ie$path中有play可执行文件。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令play调用我的框架,而不是旧的应用程序 安装:我下载了框架的压缩文件,并将其压缩到我的个人文件夹中,其中包含文档和可执行文件。如果您确定永远不会使用原始的play命令,您可以删除二进制文件。但总的来说,这不是一个好主意,因为一些您认为不需要的系统组件可能需要它,下一次更新可能会恢复

我最近安装了一个webframeworkplay(),希望在系统路径ie$path中有play可执行文件。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令play调用我的框架,而不是旧的应用程序


安装:我下载了框架的压缩文件,并将其压缩到我的个人文件夹中,其中包含文档和可执行文件。

如果您确定永远不会使用原始的play命令,您可以删除二进制文件。但总的来说,这不是一个好主意,因为一些您认为不需要的系统组件可能需要它,下一次更新可能会恢复它

最好的做法是将
play
命令的目录预先添加到路径,例如,在.profile中使用
PATH=/opt/framework/bin:$PATH
(假设play命令安装到
/opt/framework/bin/play
),或启动web服务器的脚本,或者在需要
播放
命令的任何位置


请记住,这不会使您的play命令成为全局命令。一个常见的错误是在.profile文件中添加路径,然后从crontab调用程序-crontab脚本不会执行.profile或.bashrc。

永远不要更改已安装软件包的内容。这些更改可能会在系统中引发难以发现的问题,而且无论如何,它们很可能在后续更新中再次被覆盖。还有其他选择:

  • 显然,您可以为可执行文件选择另一个名称
  • 如果是“个人安装”,则将可执行文件放在
    $PATH
    的另一部分中,通常将
    ~/bin
    用于此方法
  • 使用传统的
    /usr/local/bin
    位置进行本地添加的“野生”安装,这样在系统内的干净包和野生安装文件之间就有了某种形式的干净分离
  • 将软件存储在其他位置,并将其预先添加到个人或系统范围的
    $PATH
    变量中
  • 将可执行文件存储在另一个名称下,并为其创建一个
    别名
    (有关说明,请参见
    man alias
    ),该名称允许以某种名称调用它,从而以这种方式“隐藏”原始命令。为此,可执行文件可以用绝对路径寻址,因此不必在
    $path
    变量中找到它
    在我个人看来,选择2。五,。如果涉及到“个人安装”,则最好

    它是什么框架,您可以提供更多关于如何安装的信息吗?将框架中的
    play
    目录放在路径目录列表中系统的
    play
    目录之前。换句话说,按顺序搜索路径,并使用第一个匹配命令。@Oz123添加了详细信息