首先,让我简单介绍一下背景。对于术语的误用,我提前向大家道歉,请在必要时纠正我。
我的工作需要通过ssh远程在几台Ubuntu机器上运行模拟。这些机器都连接在一个网络中,并且我的账户在所有机器上都有关联,也就是说,
现在,这些机器上安装了我需要使用的软件,而且它们安装在我没有写入权限的目录下(/usr/local/software/)。然而,该软件有一个bash脚本用于设置环境变量。我应该将这个bash脚本(source /usr/local/software/etc/bashrc)追加到$HOME/.bashrc中,以设置必要的环境变量。到目前为止都很标准,这样设置后,当我登录时就可以运行这个软件了,对吗?现在,我认为这些计算机上的软件配置不正确,因为.../etc/bashrc应该设置一个名为$SOFTWARE_INST_DIR的变量,即安装目录。默认情况下,它是$HOME/software,但必须更改bashrc文件,使其设置为/usr/local/software。当然,我没有写入权限来修改.../etc/bashrc。还有其他类似的问题,这只是第一个失败的事情。
作为修复方法,我将该文件复制到
我的工作需要通过ssh远程在几台Ubuntu机器上运行模拟。这些机器都连接在一个网络中,并且我的账户在所有机器上都有关联,也就是说,
$HOME
是/home/links/Ogaday
,并且在每台机器上都有镜像。因此,我在其中一台机器上的文件夹中创建一个目录,它会出现在另一台机器上(这是一个我不知道如何使用正确术语的情况)。每台机器上还有本地内存,每个用户都可以访问,称为/scratch/
。我将在/scratch/
中创建一个目录来进行实际工作,因为我认为我的账户上的内存不足以在$HOME
中运行模拟,并且这样做会更快,因为它都是本地操作。现在,这些机器上安装了我需要使用的软件,而且它们安装在我没有写入权限的目录下(/usr/local/software/)。然而,该软件有一个bash脚本用于设置环境变量。我应该将这个bash脚本(source /usr/local/software/etc/bashrc)追加到$HOME/.bashrc中,以设置必要的环境变量。到目前为止都很标准,这样设置后,当我登录时就可以运行这个软件了,对吗?现在,我认为这些计算机上的软件配置不正确,因为.../etc/bashrc应该设置一个名为$SOFTWARE_INST_DIR的变量,即安装目录。默认情况下,它是$HOME/software,但必须更改bashrc文件,使其设置为/usr/local/software。当然,我没有写入权限来修改.../etc/bashrc。还有其他类似的问题,这只是第一个失败的事情。
作为修复方法,我将该文件复制到
$HOME/software-etc/bashrc
,并在$HOME/.bashrc
中追加了source $HOME/software-etc/bashrc
,而不是追加source /usr/local/software/etc/bashrc
,这样我可以编辑它分配的变量。这样做有什么根本性的问题吗?我认为另一种解决方案是,不是从软件安装位置复制bashrc文件,而是在.bashrc中追加export $HOME=/scratch/ogaday
,这样我可以重新分配我的主目录到scratch。我理解得对吗?这样做是否危险?除了用来运行长时间模拟,我可能不会在这些机器上做其他事情。
附注:我猜最终解决方法是让IT人员调查一下!不过,如果可能的话,我宁愿进行快速修复。
HOME=/scratch/ogaday
写入,不需要使用export
关键字,也不需要在变量赋值时加上$
符号。 - Byte Commander