在 Linux 机器中,我们可能必须针对该 Linux 机器来编译我们的程序。
现在,如果我们已经有一些其他用户(不是root。一个典型的用户。)已经为这台机器编译了许多程序,是否可以做这样的事情?
例如,用户 oldGuy 在其主目录中安装了 mpirun、python 和其他几个程序,并且他可以调用“mpirun”或目录中的任何其他二进制文件,而无需键入“./mpirun”。 Bash 知道他指的是哪个二进制文件。他还完成了各种其他设置。
现在,假设我们有一个名为 newGuy 的新用户。如果在我们的服务器中,oldGuy 已经编译了 newGuy 想要的所有二进制文件,而不是让 newGuy 浪费时间编译 oldGuy 已经拥有的程序并正确设置所有内容,newGuy 是否可以从 oldGuy 处“继承”一些二进制文件、设置等?
例如,oldGuy 可以直接从 Bash 直接调用“mpirun”,newGuy 可以做任何事情以便立即与 oldGuy 处于同一页面(所有相同的设置),而无需编译程序并设置其他设置等?
答案1
当您通过键入程序名称(没有目录部分,例如仅mpirun
带有可能的参数)来执行程序时,系统会在称为程序搜索路径,或简称路径。该路径由环境变量 确定PATH
,其中包含以冒号分隔的目录列表,例如/usr/local/bin:/usr/bin:/bin
先查找/usr/local/bin
,然后查找/usr/bin
,然后查找/bin
。
您可以将目录添加到搜索路径中。例如,如果 joe 在他的主目录中安装了一些程序/home/joe
,可执行文件位于 中/home/joe/bin
,则以下行将添加到/home/joe/bin
现有搜索路径的末尾:
PATH=$PATH:/home/joe/bin
在大多数环境中,要使此设置生效,请将该行添加到.profile
主目录中调用的文件中。如果该文件不存在,请创建它。
如果您在图形环境下登录,根据您的环境和发行版,.profile
可能无法读取。在这种情况下,请查看您的环境文档或在此处询问,准确说明您正在运行的操作系统、发行版和桌面环境。
如果您以文本模式(例如通过 SSH)登录并且.profile
未读取,但有一个名为 的文件.bash_profile
,请将该行添加到.bash_profile
.
答案2
如果您不愿意复制主目录,或者您有加密,一种选择是将所有编译的二进制文件安装在一个中心位置,这样/usr/local/bin/
每个人都可以访问二进制文件,并且也可以在 PATH 上自动访问,所以您的第二个要求很满意。