R 3.2, GCC и доморощенный

Недавно мне нужно было установить R 3.2, чтобы получить пакет от Bioconductor, но после установки я получаю следующую ошибку:

[16:16:11 20] $ r
dyld: Library not loaded: /usr/local/lib/gcc/4.9/libgfortran.3.dylib
  Referenced from: /usr/local/Cellar/r/3.2.0/R.framework/Versions/3.2/Resources/lib/libR.dylib
  Reason: image not found
Trace/BPT trap: 5

Конечно, brew был настроен на использование gcc 5, поэтому я сказал brew использовать версию 4.9

brew switch gcc 4.9

который запустил R, но тогда R потерпит неудачу в середине установки пакета (особенно когда я запустил biocLite('DESeq2'),

С тех пор я пробовал несколько вещей, в том числе пытался установить gcc 4.8 (но я не могу заставить R использовать его, даже через ~/.R/Makevars). Даже если 4.9 не установлен, R настаивает на вызове пути, показанного выше.

Версия R для Windows, кажется, говорит, что 4.9 не работает с 3.2:

R-devel временно использовал новый набор инструментов, основанный на 4.9.2 gcc, собранный Дунканом Мердоком с использованием сценариев сборки, написанных подрядчиком. Однако было слишком много несовместимостей с существующим кодом, и этот набор инструментов не будет использоваться для R 3.2.0. Смотрите примечания для деталей по сборке и тестированию новой цепочки инструментов.

Любая помощь будет принята с благодарностью!

Редактировать: я пытался установить из источника, как предложено @lmw., Но это не удается:

[11:27:55 2] $ brew install r --build-from-source
==> Installing r from homebrew/homebrew-science
==> Installing r dependency: gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2
######################################################################## 100.0%
curl: (28) Resolving timed out after 5542 milliseconds
Trying a mirror...
==> Downloading https://ftp.gnu.org/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2
######################################################################## 100.0%
==> Patching
patching file gcc/jit/Make-lang.in
==> ../configure --build=x86_64-apple-darwin14.3.0 --prefix=/usr/local/Cellar/gcc/5.1.0 --libdir=/usr/local/Cellar/gc
==> make bootstrap
==> make install
==> Caveats
GCC has been built with multilib support. Notably, OpenMP may not work:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60670
If you need OpenMP support you may want to
  brew reinstall gcc --without-multilib
==> Summary
  /usr/local/Cellar/gcc/5.1.0: 1351 files, 248M, built in 32.5 minutes
==> Installing r
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading http://cran.rstudio.com/src/base/R-3/R-3.2.0.tar.gz
######################################################################## 100.0%
==> Patching
patching file src/modules/lapack/vecLibg95c.c
==> ./configure --prefix=/usr/local/Cellar/r/3.2.0_1 --with-libintl-prefix=/usr/local/opt/gettext --enable-memory-pro
==> make
** installing vignettes
** testing if installed package can be loaded
* DONE (survival)
make[1]: *** [recommended-packages] Error 2
make: *** [stamp-recommended] Error 2

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/homebrew/homebrew-science/issues

Изменить 2: просто для удовольствия, я попытался установить r без --build-from-source вариант, и это сработало. Смотрите мое решение ниже. (Я думаю, что сборка из источника могла решить проблему с gcc 5 обновление, которое заставило вещи работать. Я не собираюсь это пробовать (наконец-то все снова работает... зачем с этим связываться?), Но мне интересно, могу ли я удалить переменные, которые я установил в ~/.R/Makevars (снова см. решение ниже).

3 ответа

Решение

Это было решено этим коммитом, с новыми бутылками для R. Убедитесь, что вы brew update а также brew upgrade r,

Перестройка R из исходного кода исправляет ту же проблему для меня.

brew переустановить r --build-from-source

Это не полное исправление (оно использует более старую версию gcc), но оно заставляет меня снова работать:

  1. brew tap homebrew/homebrew-versions
  2. brew install gcc48
  3. brew install r
    • ПРИМЕЧАНИЕ: я побежал brew install r --build-from-source (переустановка не работает), который перестроил что-то, но не г (это не удалось). Это может быть частично ответственным за эту работу. Пожалуйста, дайте мне знать, если это так! Я хотел бы отдать должное @lmw, если его ответ - причина, по которой это сработало.
  4. редактировать ~/.R/Makevars и добавьте следующие строки (при необходимости измените пути):

    CC=/usr/local/Cellar/gcc48/4.8.4/bin/gcc-4.8
    CXX=/usr/local/Cellar/gcc48/4.8.4/bin/g++-4.8
    CFLAGS=-std=c99
    
  5. Бежать r,

  6. (Если вы пытаетесь установить биокондуктор)

    source("http://bioconductor.org/biocLite.R")
    biocLite()
    
Другие вопросы по тегам