Construir Pacotes de R utilizando Alternate GCC
Pergunta
Os sistemas com quem trabalho têm GCC 4.5 (experimental) em / usr / local / bin / gcc que provou ser problemático para alguns pacotes R. Gostaria de passar a usar GCC sistema em / usr / bin / gcc.
Eu tentei configuração CC e CXX nos arquivos de configuração Bash (.bashrc, Bash_profile etc.), bem como na linha de comando, mas, embora Bash reconhece a alteração, R não.
Como posso obter R usar a versão do GCC em / usr / bin em vez de um em / usr / / bin local /?
Solução
Este não é tão bem documentada (por exemplo I não conseguiu localizá-lo em qualquer 'R Extensão' ou 'R Admin' agora), mas Brian Ripley mencionado algumas vezes nas listas.
Basicamente, em tempo de compilação R, definições são registadas e armazenadas em $R_HOME/etc/Makeconf
. Uma possibilidade é a de editar esse arquivo diretamente, mas você não pode ter privilégios de root ou não quer afetar todos os outros usuários. Assim, o melhor pode ser para criar
~/.R/Makevars
com entradas
CC=gcc-4.4
CXX=g++-4.4
bandeiras além de qualquer que seja o optmisation etc você deseja definir. Que o afetam todos os usos subseqüentes R CMD INSTALL
ou R CMD check
ou ... que você execute.
Outros arquivos em $R_HOME/etc/
pode ser igualmente substituído localmente a partir ~/.R/
.
Outras dicas
Eu tive um problema muito semelhante.
O que funcionou para mim foi definir um diretório de projeto (rstudio pode fazer isso por você), e depois adicionar um arquivo .Renviron
que modifica o PATH e LD_LIBRARY_PATH, para incluir o diretório com a nova gcc.
No seu caso, por exemplo, o .Renviron
será algo parecido com:
LD_LIBRARY_PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec:
outros caminhos
PATH=/usr/local/bin/gcc/bin:/usr/local/bin:
outros caminhos
Verifique se o seu caminho para ver se / usr / local / bin vem antes de / usr / bin. Se isso acontecer, apenas certifique-se / usr / bin vem primeiro:
PATH=/usr/bin:${PATH}
(tudo bem se / usr / bin é duplicado aparece duas vezes).