ubuntu / linux中具有相同名称的多个二进制文件

时间:2014-02-25 09:55:17

标签: linux ubuntu

我最近安装了一个webframework play(http://www.playframework.com/),并希望在系统路径中播放可执行文件,即$ PATH。但是ubuntu已经定义了一个名为play的命令。如何使用框架二进制路径覆盖系统定义的命令,以便命令行上的命令调用我的框架而不是旧应用程序。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

  1. 显然你可以为你的可执行文件选择另一个名字
  2. 将可执行文件放在$PATH的另一部分中,如果它是“个人安装”,通常~/bin用于此类方法
  3. 使用传统的/usr/local/bin位置进行本地添加的“野外”安装,这样就可以在系统内部的干净包和野外安装文件之间进行某种形式的清洁分离
  4. 将您的软件存储在其他位置,并将其添加到您的个人或系统范围$PATH变量
  5. 以另一个名称存储您的可执行文件,并为其创建一个alias(请参阅man alias以获取解释),允许通过某种名称以这种方式“隐藏”原始命令来调用它。为此,可执行文件可以使用绝对路径进行寻址,因此必须在$PATH变量中找到而不是
  6. 在我个人看来选项2.和5.以及最好的“个人装置”。