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/garuns
executar o R, funcionou perfeitamente.
Responder1
Se o R já estiver instalado, pode ser que a PATH
variá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 Rscript
comando 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/version
comando, 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.