ubuntu/linux中多个同名二进制文件
我最近安装了一个webframeworkplay(),希望在系统路径ie$path中有play可执行文件。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令play调用我的框架,而不是旧的应用程序ubuntu/linux中多个同名二进制文件,linux,ubuntu,Linux,Ubuntu,我最近安装了一个webframeworkplay(),希望在系统路径ie$path中有play可执行文件。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令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添加了详细信息