Создание пакетов 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/?
Ответы
Ответ 1
Это не так хорошо задокументировано (например, мне не удалось найти его ни в "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/
.
Ответ 2
У меня была очень похожая проблема.
Что сработало для меня, так это определить каталог проекта (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:
другие пути
Ответ 3
Проверьте свой путь, чтобы увидеть, есть ли /usr/local/bin перед/usr/bin. Если это так, просто убедитесь, что сначала /usr/bin:
PATH=/usr/bin:${PATH}
(это нормально, если дубликат /usr/bin дублируется дважды).
Ответ 4
Посмотрите на configure.args
часть ?install.packages
и сравните это с ./configure --help
, например. исходное дерево r.
Вы также можете из bash CC=clang R CMD INSTALL /path/to/package/source
.
НТН