例如,gprolog
和swi-prolog-nox
都提供prolog
。如果我同时安装它们,我该如何在它们之间进行选择,如果我只输入,会说什么bash
或做什么?sh
prolog
答案1
这取决于软件包安装的内容。有几种不同的可能性:
两个包都会将可执行文件安装到同一个目录中。
例如,如果两者都提供
/bin/prolog
,那么最后安装的包将覆盖之前安装的包,最终您将得到一个版本的prolog
。然而,这并不常见,因为dpkg
如果您尝试安装两者,它会抱怨包冲突并拒绝安装。每个包都会在不同的路径安装可执行文件。
例如,一个在 中,
/bin/prolog
另一个在 中/usr/bin/prolog
。那么,运行时运行哪一个prolog
将取决于哪一个在你的 PATH 中排在第一位。在 Ubuntu 系统上,默认 PATH 是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
由于
/usr/bin
在 之前/bin
,这意味着prolog
将运行/usr/bin/prolog
。您可以通过运行来查看系统中将发生的情况:type -a prolog
这将打印
prolog
找到的所有可执行文件(或函数或别名),然后运行echo $PATH
以查看您的 PATH 并找出首先调用哪个。prolog
这些程序可能会通过向您的 shell 的启动文件添加别名或函数为您提供命令。在这种情况下,别名或函数将始终在任何独立可执行文件之前执行。因此,如果你有一个别名和一个
/usr/local/bin/prolog
文件,那么prolog
将始终运行别名,而不会运行文件。