Сборка пакетов R с использованием альтернативного GCC
Системы, с которыми я работаю, имеют GCC 4.5 (экспериментальный) в / usr / local / bin / gcc, что оказалось проблематичным для некоторых пакетов R. Я хотел бы вместо этого использовать систему GCC в / usr / bin / gcc.
Я попытался установить CC и CXX в файлах конфигурации Bash (.bashrc, .bash_profile и т. Д.), А также в командной строке, но, хотя Bash распознает изменение, R - нет.
Как мне заставить R использовать версию GCC в / usr / bin вместо версии в /usr/local/bin/?
3 ответа
Это не так хорошо задокументировано (например, мне не удалось найти его ни в "R Extension", ни "R Admin" прямо сейчас), но Брайан Рипли несколько раз упоминал об этом в списках.
Как правило, во время компиляции R настройки регистрируются и сохраняются в $R_HOME/etc/Makeconf
, Одна возможность - редактировать этот файл напрямую, но у вас могут не быть привилегии root или вы не захотите влиять на всех остальных пользователей. Так что лучше можно создать
~/.R/Makevars
с записями
CC=gcc-4.4
CXX=g++-4.4
плюс какие-либо флаги выбора и т. д., которые вы хотите установить. Это повлияет на все последующие использования R CMD INSTALL
или же R CMD check
или... что ты бежишь.
Другие файлы в $R_HOME/etc/
аналогично может быть переопределено локально из ~/.R/
,
У меня была очень похожая проблема.
Для меня было полезно определить каталог проекта (rstudio может сделать это за вас), а затем добавить .Renviron
файл, который изменяет PATH и LD_LIBRARY_PATH, чтобы включить каталог с новым gcc. В вашем случае, например, .Renviron
будет выглядеть примерно так:
LD_LIBRARY_PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec:
другие пути
PATH=/usr/local/bin/gcc/bin:/usr/local/bin:
другие пути
Проверьте ваш путь, чтобы увидеть, находится ли /usr/local/bin перед /usr/bin. Если это так, просто убедитесь, что / usr / bin идет первым:
PATH=/usr/bin:${PATH}
(Это нормально, если дублируется / usr / bin, появляется дважды).
Смотреть на configure.args
часть ?install.packages
и сравните это с ./configure --help
на, например, исходном дереве r.
Вы также можете из bash, CC=clang R CMD INSTALL /path/to/package/source
.
HTH