我最近安装了一个webframework play(http://www.playframework.com/),并希望在系统路径中播放可执行文件,即$ PATH。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令调用我的框架而不是旧应用程序。
安装:我下载了框架的压缩文件并在我的个人文件夹中提取,其中包含文档和可执行文件。
答案 0 :(得分:0)
如果您确定永远不会使用原始播放命令,则可以删除二进制文件。但总的来说,这不是一个好主意,因为你想不到的某些系统组件可能需要它,下一次更新可能会恢复它。
最好的做法是将play
命令的目录添加到PATH,例如,使用.profile中的PATH=/opt/framework/bin:$PATH
(假设您的播放命令安装到/opt/framework/bin/play
),或者启动Web服务器的脚本,或者您需要play
命令的任何地方。
请记住,不使您的播放命令全局化。一个常见的错误是在.profile文件中添加路径,然后从crontab调用该程序 - crontab脚本将不执行.profile或.bashrc。
答案 1 :(得分:0)
永远不要改变已安装软件包的内容。这样的更改可能会导致很难在系统中发现问题,无论如何,它们很可能会在后续更新中再次被覆盖。还有其他选择:
$PATH
的另一部分中,如果它是“个人安装”,通常~/bin
用于此类方法/usr/local/bin
位置进行本地添加的“野外”安装,这样就可以在系统内部的干净包和野外安装文件之间进行某种形式的清洁分离$PATH
变量alias
(请参阅man alias
以获取解释),允许通过某种名称以这种方式“隐藏”原始命令来调用它。为此,可执行文件可以使用绝对路径进行寻址,因此必须在$PATH
变量中找到而不是。 在我个人看来选项2.和5.以及最好的“个人装置”。