2014-01-05 26 views
1

我在我的home文件夾下安裝了R,並且我想在將作業提交給羣集時調用新的R。羣集節點都安裝了CentOS。別名在qsub後不起作用

下面是我在.bash_profile文件和.bashrc中所做的配置:

if [ `lsb_release -i|cut -c17-20` == 'Cent' ] ; then 
    alias R='/home/XXX/R-3.0.2/bin/R' 
    alias Rscript='/home/XXX/R-3.0.2/bin/Rscript' 
fi 

我加入的.bash_profile如下:

if [ -f ~/.bashrc ]; then 
    source ~/.bashrc 
fi 

我還添加了這所提交的腳本。

source $HOME/.bash_profile 

我試着用qsub -I,它工作的很完美。

但是,我提交作業後,which R仍然顯示原始路徑!

如何正確設置環境?

回答

1

別名不影響which命令,例如:

$ which R 
/usr/bin/R 
$ alias R=/bin/date 
$ R 
Sun Jan 5 13:40:54 CET 2014  # as you see the alias works 
$ which R       # `which R` still returns the original path 
/usr/bin/R 

而不是使用別名,我覺得要前置/home/XXX/R-3.0.2/binPATH

PATH="/home/XXX/R-3.0.2/bin:$PATH" 

在此之後,如果RRscript存在於/home/XXX/R-3.0.2/bin中,則:

  • which R應該返回/home/XXX/R-3.0.2/bin/R
  • which Rscript應該返回/home/XXX/R-3.0.2/bin/Rscript

,因爲他們將在/home/XXX/R-3.0.2/bin首先發現,在$PATH其餘任何其他目錄之前。

+0

謝謝@janos。我創建了一個.env文件,並在其中添加了PATH =「/ home/XXX/R-3.0.2/bin:$ PATH」,然後在if命令中檢測到CentOs時源文件。 – shao