В сборке Homebrew R отсутствует Cairo

Я установил R на сервер OSX 10.7.5, используя brew:

brew install R

Пока вроде все нормально, но Cairo не работает:

> svg(tempfile())
Warning messages:
1: In svg(tempfile()) :
  unable to load shared object '/usr/local/Cellar/r/2.15.2/R.framework/Resources/library/grDevices/libs//cairo.so':
  dlopen(/usr/local/Cellar/r/2.15.2/R.framework/Resources/library/grDevices/libs//cairo.so, 6): image not found
2: In svg(tempfile()) : failed to load cairo DLL

Общий объектный файл, похоже, полностью отсутствует:

id-86-243:Resources jeroen$ ls -ltr library/grDevices/libs/
total 488
-rwxrwxr-x  1 jeroen  admin  245764 Dec 22 17:03 grDevices.so

Я редко использую OSX, поэтому я не совсем уверен, является ли это ошибкой в ​​​​этом конкретном дистрибутиве R или я сделал что-то не так при его сборке?


person Jeroen    schedule 23.12.2012    source источник
comment
ISTR, Саймон Урбанек отговаривает людей от использования homebrew для компиляции R. 4 ноября 2012 года в MacSIG он написал: Вы не можете использовать двоичные файлы CRAN с homebrew. Если вы используете homebrew, вы полностью предоставлены сами себе и должны собирать все из исходников.   -  person IRTFM    schedule 23.12.2012
comment
Это нормально. В Linux мы также всегда устанавливаем пакеты из исходников. Однако grDevices - это базовый R.   -  person Jeroen    schedule 23.12.2012
comment
Пакеты по умолчанию включают как «базовый», так и «grDevices», но grDevices не входит в «базовый» пакет.   -  person IRTFM    schedule 23.12.2012
comment
При установке R с использованием macports я должен убедиться, что устанавливаю r-framework, а не только R. Может быть, есть аналогичная проблема с brew? Я предлагаю использовать macports.   -  person Roland    schedule 23.12.2012
comment
@DWin Я имел в виду его приоритет: svn.r -project.org/R/trunk/src/library/grDevices/DESCRIPTION.in   -  person Jeroen    schedule 23.12.2012


Ответы (2)


Я только что столкнулся с этой проблемой. Кажется, это проблема с pkg-config поиском cairo на этапе настройки R. Обходной путь выглядит следующим образом:

export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig

так что R может правильно использовать cairo.

Я устанавливаю R непосредственно из исходного кода, а не с помощью homebrew, но я использую homebrew для обновления других библиотек. Это решает проблему для меня.

Для справки, я использую OSX Mavericks.

person Kevin Ushey    schedule 10.12.2013
comment
Установка из исходного кода в homebrew (то есть как brew install R --build-from-source) привела к тому, что R был связан с соответствующей cairo-библиотекой для меня. - person Sam Mason; 17.01.2015

Что, наконец, сработало для меня, так это сборка R явно с помощью cairo (кран R brew по умолчанию использует --without-cairo, и простое редактирование крана не решило проблему для меня).

Все это объясняется в этом замечательном сообщении в блоге: https://luispuerto.net/blog/2018/05/11/installing-r-with-homebrew-with-all-the-capabilities/

У меня отлично работает с R 4.0.2, cairo 1.16.0_3 под macOS Catalina 10.15.6.

person Bouncner    schedule 09.10.2020