R не удается после установки GTK и RGtk2 - программирование
Подтвердить что ты не робот

R не удается после установки GTK и RGtk2

Я установил R3.0 на своем Mountain Lion Mac и после некоторой пробной версии и ошибки версия GTK, предложенная http://r.research.att.com/ для R3.0: GTK + 2.24.17.

Я загружаю пакет в R3.0 и запускаю одну из демонстраций. Я вижу (на мгновение), что граф генерируется, но сразу R сбой. Обычно авария происходит, когда я запускаю строку "win $showAll()" (CairoDevice не работает). Это начало созданного журнала ошибок (с подробной информацией о моей конфигурации). Спасибо!


Process:         R [2307]
Path:            /Applications/R.app/Contents/MacOS/R
Identifier:      org.R-project.R
Version:         R 3.0.0 GUI 1.60 Snow Leopard build (6476)
Code Type:       X86-64 (Native)
Parent Process:  launchd [231]
User ID:         501

Date/Time:       2013-04-07 23:54:11.976 +0100
OS Version:      Mac OS X 10.8.3 (12D78)
Report Version:  10

Interval Since Last Report:          11186 sec
Per-App Interval Since Last Report:  1133 sec
Per-App Crashes Since Last Report:   11
Anonymous UUID:                      2C9EB7F4-E0B7-FDC4-7300-075C23CD86BB

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
Assertion failed: (_cairo_status_is_error (status)), function _cairo_error, file cairo-error.c, line 68.


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff8afbd212 __pthread_kill + 10
1   libsystem_c.dylib               0x00007fff867ccb54 pthread_kill + 90
2   libsystem_c.dylib               0x00007fff86810dce abort + 143
3   libsystem_c.dylib               0x00007fff86811e2a __assert_rtn + 146
4   libcairo.2.dylib                0x000000010d383cdc _cairo_error + 48
5   libcairo.2.dylib                0x000000010d37c6f7 _cairo_set_error + 19
6   libgtk-x11-2.0.0.dylib          0x000000010eca326a gtk_default_draw_focus + 554
7   libgtk-x11-2.0.0.dylib          0x000000010ec63dfc gtk_range_expose + 1644
8   libgtk-x11-2.0.0.dylib          0x000000010ec7e2b8 gtk_scale_expose + 120
9   libgtk-x11-2.0.0.dylib          0x000000010ec22e79 _gtk_marshal_BOOLEAN__BOXED + 169
10  libgobject-2.0.0.dylib          0x0000000109642455 g_closure_invoke + 245
11  libgobject-2.0.0.dylib          0x00000001096524c8 signal_emit_unlocked_R + 2216
12  libgobject-2.0.0.dylib          0x0000000109653528 g_signal_emit_valist + 3336
13  libgobject-2.0.0.dylib          0x0000000109653a64 g_signal_emit + 116
14  libgtk-x11-2.0.0.dylib          0x000000010ed38bd8 gtk_widget_event_internal + 664
15  libgtk-x11-2.0.0.dylib          0x000000010eba0fc1 gtk_container_propagate_expose + 369
16  libgtk-x11-2.0.0.dylib          0x000000010eb72e06 gtk_box_forall + 54
17  libgtk-x11-2.0.0.dylib          0x000000010eba3936 gtk_container_expose + 150
18  libgtk-x11-2.0.0.dylib          0x000000010ec22e79 _gtk_marshal_BOOLEAN__BOXED + 169
19  libgobject-2.0.0.dylib          0x0000000109642455 g_closure_invoke + 245
20  libgobject-2.0.0.dylib          0x00000001096524c8 signal_emit_unlocked_R + 2216
21  libgobject-2.0.0.dylib          0x0000000109653528 g_signal_emit_valist + 3336
22  libgobject-2.0.0.dylib          0x0000000109653a64 g_signal_emit + 116
23  libgtk-x11-2.0.0.dylib          0x000000010ed38bd8 gtk_widget_event_internal + 664
24  libgtk-x11-2.0.0.dylib          0x000000010eba0fc1 gtk_container_propagate_expose 
4b9b3361

Ответ 1

Я хочу поблагодарить всех людей, которые способствовали решению этой проблемы. В конце концов мне удалось это исправить, после многочисленных испытаний (и поздних ночей!). Основные предлагаемые методы:

  • установить GTk + и cairo с homebrew

  • установить GTk2 и cairo с macports

Мне никогда не удавалось сделать эту работу с macports, но в конце концов я был успешным с homebrew, после многих бесплодных попыток. Я очистил свою ПУТЬ, которая становилась немного грязной. Затем я в основном удалил X11, GTk +, cairo и все их зависимости.

Я впервые установил XQuartz-2.7.4.

Для установки всех необходимых компонентов я выполнил следующие инструкции здесь и установил yarp с помощью homebrew и связанных с ним инструкций. Большинство людей могут найти этот причудливый (я сделал), но установка yarp последовательно установила все необходимые зависимости, чтобы заставить GTk + работать (очевидно, я просто пытался установить GTk + и cairo, но он никогда не работал или, в конечном итоге, RGTk2 не удалось скомпилировать).

Затем я установил (используя R CMD INSTALL) GTk2, Cairo, cairoDevice и погремушку из источников. После стольких месяцев, пытаясь решить проблему, я не мог поверить, что все сработало!

Еще раз спасибо всем тем, кто внес свой вклад в их усилия и свои исследования, чтобы решить проблему.

Enzo

Ответ 2

У меня тоже была эта проблема. Вот как я работал с ним, используя macports gtk2 - не версию http://r.research.att.com/. Это было с R версии 3.0.1 (2013-05-16) - "Хороший спорт", также скомпилированный из источника.

установить gtk2

sudo port install gtk2 ## (X11 -- not aqua)

Настройка

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

затем установите

Я загрузил RGtk2 и cairoDevice из CRAN и установил исходный код:

R CMD INSTALL RGtk2
R CMD INSTALL cairoDevice

Ответ 3

В дополнение к ответу jverzani, если вы хотите использовать Homebrew:

brew install gtk+
export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig:$PKG_CONFIG_PATH

а затем установите RGtk2 и cairoDevice из источника.

Ответ 4

Я использовал решение Homebrew (предложенное masaha03) на Snow Leopard и все еще сталкивался с проблемами с R. Было выяснено, что в такой конфигурации gtk использует cairo, установленный доморощенным, тогда как RGtk2 и cairoDevice используют собственную установку cairo которая является другой версией. Поскольку каир и другие зависимые библиотеки "кег-только", мне нужно было создать символическую ссылку для них:

brew link --force cairo
brew link --force pixman

Эти два были достаточными для меня, но могли быть другие, которые должны быть связаны. Причина в том, что кабриолет Homebrew может зависеть от конкретной версии библиотеки, но системная версия этой библиотеки может быть ниже. В таком случае установка RGtk2 завершается с сообщением о том, что gtk + не установлен.

Наконец, PKG_CONFIG_PATH сначала указывает на пакеты Homebrew, а затем на родные:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/X11/lib/pkgconfig:$PKG_CONFIG_PATH

Затем установите RGtk2 и cairoDevice.

Ответ 5

На MAC при работе с R я стараюсь следовать принципу попытки сделать все изначально и избежать решений Homebrew и Macports. Хотя для других целей я люблю доморощенного.

Я просто повторю предложение @BondedDust использовать совет Саймона Урбанека.

Шаг 1: Загрузите библиотеку из http://r.research.att.com/#other

Шаг 2: Просто проверьте, где теперь установлена ​​эта платформа GTK + на вашем компьютере, - на мой он был установлен на:
  /Library/Frameworks/GTK+.framework/

Шаг 3: Найдите подкаталог, в который помещен новый файл GTK + pkg-config. В моем случае:
  Versions/2.24.X11/Resources/lib/pkgconfig

Шаг 4: Убедитесь, что это находится в переменной PKG_CONFIG_PATH. В моем случае я просто установил переменную в R непосредственно перед установкой пакета RGtk2 из источника следующим образом:
  Sys.setenv(PKG_CONFIG_PATH= "/Library/Frameworks/GTK+.framework/Versions/2.24.X11/Resources/lib/pkgconfig")
  install.packages("RGtk2", type="source")

ПРИМЕЧАНИЕ: мой PKG_CONFIG_PATH был ранее пустым, поэтому мне не нужно было конкатенироваться со старым значением, но если это не так, вы можете легко использовать Sys.getenv для получения старого значения и при необходимости добавить его.

Ответ 6

Обновление: насколько я могу судить, эта проблема по-прежнему сохраняется (R версии 3.1.0), но информация, предоставленная людьми в этом потоке, по-прежнему делает трюк для работы вокруг нее. За последние пару месяцев я много раз запускал установку в разных системах Mac OS X, и в итоге я собрал информацию для людей, новых для R (в основном немного более подробная версия ответа Джона Верзани, нацеленная на Mac OS X > 10.7). До сих пор он работал хорошо, поэтому, когда я был полезным для других, я хотел бы опубликовать ссылку:

Работа с проблемой GTK на R > 3.0

Ответ 7

ответ jverzani's очень полезен, вот некоторые дальнейшие проблемы, которые я нашел, я отредактировал на свой пост:

  • Установка gtk2: определенно используйте macports gtk2. Не созерцайте создание gtk2 самостоятельно из источника.

    sudo port install gtk2 +x11 ## (+ x11, not + quartz/+ universal/+ no_x11)

  • Какой вариант gtk2 и его зависимости установить: Не устанавливайте вариант + кварц, используйте вариант + x11, даже если (как и во всех Mac OS 10.8.x +) у вас есть XQuartz, а не X11 установлен за Брандон Allbery полезный пост для пользователей macports, объясняющих имя варианта + кварца, является неправильным выражением.

    2b. Если вы случайно не выбрали ничего, кроме варианта + x11 для gtk2 и/или любого из его вариантов (atk, cairo, pango и т.д.), Вы получите компиляцию с ошибкой на gtk2. Пример: atk не удался для меня с ошибкой компиляции на /opt/local/include/atk -1.0/atk/atk.h. Вы должны удалить неправильные установленные варианты: например. sudo port uninstall --follow-dependents cairo @1.12.14_0+quartz+x11, а также очистите нежелательно выбранные варианты с помощью sudo port clean atk cairo pango ...

  • Затем, как отмечает примечания jverzani, вам нужна установка источника (а не двоичная установка MacOS) из них:

    ... # затем установите: загрузите RGtk2 и cairoDevice из CRAN и выполните установку источника:

    R CMD INSTALL RGtk2

    R CMD INSTALL cairoDevice