script bash - erro "Rscript: comando não encontrado"

script bash - erro "Rscript: comando não encontrado"

Eu tenho o seguinte script bash tentando executá-lo no Linux, mas recebo uma mensagem de erro informando que o arquivo line 31: Rscript: command not found. Você pode me dar um conselho se eu estiver errado?

#!/bin/bash
#PBS -S /bin/bash
#PBS -N garunsmodel
#PBS -l mem=10g
#PBS -l walltime=02:00:00
#PBS -A improvingherds
#PBS -m ae


nodeDir=`mktemp -d /tmp/phuong.XXXXX`

cp -r /group/dairy/phuongho/garuns $nodeDir

cd $nodeDir

cd garuns
module load gcc vle // this is to load vle platform
rm -rf out
mkdir out

#In garuns.vpz. The output file path has to be changed.
#to an absolute path that's available on the node the script is running.

XXX=`pwd`
sed -i "s|/group/dairy/phuongho/garuns/out|$XXX/out/|" exp/garuns.vpz
Rscript  R/repetability.R

DATE=`date +%Y%m%d-%H%M%S`
mkdir "/group/dairy/phuongho/job.$DATE"

cp -r out  "/group/dairy/phuongho/job.$DATE"

Quando tentei acessar manualmente para tmp/phuong.XXXXX/garunsexecutar o R, funcionou perfeitamente.

Responder1

Se o R já estiver instalado, pode ser que a PATHvariável escolha o RScript? Verificar comwhich RScript

Neste caso, tente export PATH=/path/to/alternate/r/bin:$PATH Ou tente a força bruta, fornecendo o caminho absoluto ao fazer referência RScript, por exemplo ~/R-3.2.5_patched/bin/RScript/R/repetability.R

Responder2

Você precisa instalar o R

Por exemplo no Ubuntu:

sudo apt-get install r-base-core

Então o Rscriptcomando será reconhecido na linha de comando.

Eu fiz isso e funcionou, mas esteja ciente de que a instalação foi bastante grande, com centenas de dependências instaladas. Demorou alguns minutos para instalar.

Responder3

Parece um script enviado a um cluster de computação por meio de algo como SLURM. Você deve conversar com o administrador do seu sistema e perguntar se o R está instalado no cluster e, em caso afirmativo, como habilitar o acesso a ele no seu script.

Nos clusters aos quais tenho acesso, alguns softwares precisarão ser carregados com um module load somesoftware/versioncomando, que atualiza/define as variáveis ​​de ambiente necessárias para executar o software.

Responder4

Recebi a mesma mensagem de erro, mas por um motivo diferente. Postando aqui porque as pessoas vão pousar aqui como eu também.

Verifique se sua primeira linha é #!/bin/bash(o que não é problema seu) em vez de #!/bin/sh, caso contrário, alguns comandos como module load <>não serão executados.

informação relacionada