Skip to content

Instantly share code, notes, and snippets.

@zhiyzuo
Last active May 17, 2020 12:17
Show Gist options
  • Save zhiyzuo/a489ffdcc5da87f28f8589a55aa206dd to your computer and use it in GitHub Desktop.
Save zhiyzuo/a489ffdcc5da87f28f8589a55aa206dd to your computer and use it in GitHub Desktop.
A brief note on how to install rattle/RGtk2 on macOS
@zvada
Copy link

zvada commented Nov 16, 2017

That's fantastic tutorial, I spent hours to install rattle but without finding this guide I wouldn't succeed! Thanks a lot!!! OS X El Captain (10.11.6) and R version 3.4.2 was my case, though. To uninstall gtk+ I haven't used flag --ignore-dependences.

@ningchencontact
Copy link

Thanks a million - it worked!!!! 👍

@sanromd
Copy link

sanromd commented Nov 28, 2017

Hello, great tutorial, thanks for sharing. I am having an issue at step 7 and I am unable to install cairo. The output of brew install --with-x11 cairo is below. I am running MacOs High Sierra 10.13.1 and gcc 7.2. What could be the error?

`~ brew install --with-x11 cairo
==> Downloading https://cairographics.org/releases/cairo-1.14.10.tar.xz
Already downloaded: /Users/sanromd/Library/Caches/Homebrew/cairo-1.14.10.tar.xz
==> ./configure --prefix=/usr/local/Cellar/cairo/1.14.10 --enable-gobject=yes --enable-svg=yes --enable-tee=yes --enable-quartz-image --enable-xcb=yes --enable-xlib=yes --enable-xlib-xrender=yes
Last 15 lines from /Users/username/Library/Logs/Homebrew/cairo/01.configure:
configure: WARNING: CoreGraphics/CoreGraphics.h: present but cannot be compiled
configure: WARNING: CoreGraphics/CoreGraphics.h: check for missing prerequisite headers?
configure: WARNING: CoreGraphics/CoreGraphics.h: see the Autoconf documentation
configure: WARNING: CoreGraphics/CoreGraphics.h: section "Present But Cannot Be Compiled"
configure: WARNING: CoreGraphics/CoreGraphics.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------------------------------------- ##
configure: WARNING: ## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
configure: WARNING: ## ---------------------------------------------------------------------- ##
checking for CoreGraphics/CoreGraphics.h... no
checking whether cairo's Quartz surface backend feature could be enabled... no (requires CoreGraphics framework)
checking for cairo's Quartz font backend feature...
checking whether cairo's Quartz font backend feature could be enabled... no (requires CoreGraphics framework)
checking for cairo's Quartz Image surface backend feature...
checking whether cairo's Quartz Image surface backend feature could be enabled... no (requires CoreGraphics framework)

configure: error: Quartz Image surface backend feature could not be enabled`

@jingyuzheng
Copy link

jingyuzheng commented Dec 5, 2017

Hello! It shows the error below when I did this ~/Downloads$ R CMD INSTALL RGtk2_2.20.33.tar.gz:
Rgtk.c:7:10: fatal error: 'gdk/gdkx.h' file not found
#include <gdk/gdkx.h>
^
1 error generated.
make: *** [Rgtk.o] Error 1
ERROR: compilation failed for package ‘RGtk2’

  • removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/RGtk2’

Any idea on how to solve this problem? Thanks in advance!! ps: very helpful tutorial! Thanks a lot!

@zhiyzuo
Copy link
Author

zhiyzuo commented Dec 17, 2017

@jingyuzheng, it seems like you did not install gtk+ successfully

@installingrattle
Copy link

Thank you so much for this tutorial.

Do you know why I'd be getting this error, when I attempt your Step 11? Thank you again.


Downloads $ R CMD INSTALL RGtk2_2.20.33.tar.gz
Warning in strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
  unknown timezone 'zone/tz/2017c.1.0/zoneinfo/Australia/Melbourne'
* installing to library ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library’
* installing *source* package ‘RGtk2’ ...
** package ‘RGtk2’ successfully unpacked and MD5 sums checked
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for INTROSPECTION... no
checking for GTK... no
configure: error: GTK version 2.8.0 required
ERROR: configuration failed for package ‘RGtk2’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/RGtk2’
pc053301:Downloads $ 

@installingrattle
Copy link

Thank you, I used your tips as well as
http://marcoghislanzoni.com/blog/2014/08/29/solved-installing-rattle-r-3-1-mac-os-x-10-9/
and it runs now!
Thanks again

@rsalek
Copy link

rsalek commented Jan 15, 2018

Great help thx @zhiyzuo
Also @jingyuzheng re:
Rgtk.c:7:10: fatal error: 'gdk/gdkx.h' file not found
#include <gdk/gdkx.h>
^
1 error generated.
make: *** [Rgtk.o] Error 1
ERROR: compilation failed for package ‘RGtk2’
removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/RGtk2’

brew uninstall gtk+ --ignore-dependencies
and then install again fixed mine

@Boggartfly
Copy link

Thanks for the tutorial, this works for me.

@lizpund
Copy link

lizpund commented Jan 21, 2018

Thank you so, so much for this tutorial. It made all the difference in being able to move forward on this issue. I am almost there. I was able to get all the way through the end and Rattle did open from XQuartz.

However, I tried to then open Rattle from R Studio and I'm getting stuck on a similar error as @uiang. I am wondering if anyone figured out how to get around it. I am running the following:

  • Mac OS 10.13.2 (High Sierra)
  • R 3.4.3 GUI 1.70 El Capitan build (7463)
  • XQuartz 2.7.11 (xorg-server 1.18.4)
  • RStudio Version 1.1.414

So when I use the XQuartz Terminal, I type library(rattle) and then rattle(), and Rattle opens.

> library(rattle)
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.
> rattle ()

(Rattle opens)

But when I use the R Terminal, I try the same thing and this is what I get

> library(rattle)
R session is headless; GTK+ not initialized.
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.
> rattle()
Error in rattle() : Can't load RGtk2.
  A windowing system can't be accessed?
  Maybe you are using a remote terminal (ssh) or RStudio browser connection.
  Consider using remote desktop, ssh -X, or X2Go depending on your platform.
  Running rattle() locally on a desktop is the default.
(R:66236): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()

And when I use R Studio, I try the same thing and this is what I get:

> library(rattle)
R session is headless; GTK+ not initialized.
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.
> rattle()
(R:66390): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
Error in rattle() : Can't load RGtk2.
  A windowing system can't be accessed?
  Maybe you are using a remote terminal (ssh) or RStudio browser connection.
  Consider using remote desktop, ssh -X, or X2Go depending on your platform.
  Running rattle() locally on a desktop is the default.

I tried reinstalling RGtk2 in the Terminal and noticed I am getting this at the end of the install:

...
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
R session is headless; GTK+ not initialized.
* DONE (RGtk2)

Thanks in advance for any advice.

@zhiyzuo
Copy link
Author

zhiyzuo commented Jan 21, 2018

@MindExplore.
Can you try first open XQuartz then run rattle in RStudio?

@lizpund
Copy link

lizpund commented Jan 22, 2018

@zhiyzuo I'll try it! I appreciate your reply.

OK, just tried it by closing everything and then, did the following in this order:
a) opened XQuartz
b) opened RStudio
c) in RStudio, I ran library(rattle)
d) in RStudio, I ran ran rattle()

Unfortunately, I got the same output:

> library(rattle)
R session is headless; GTK+ not initialized.
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.
> rattle()

(R:67092): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
Error in rattle() : Can't load RGtk2.
  A windowing system can't be accessed?
  Maybe you are using a remote terminal (ssh) or RStudio browser connection.
  Consider using remote desktop, ssh -X, or X2Go depending on your platform.
  Running rattle() locally on a desktop is the default.

@zhiyzuo
Copy link
Author

zhiyzuo commented Jan 23, 2018

@MindExplore How about loading the package RGtk2 in XQuartz and then tried to open rattle in RStudio?

I remembered that the way I tested was similar to make rattle run in RStudio but did not remember clearly. Basically I tried to get GTK work since RStudio somehow was unable to do this.

@JennySong29
Copy link

I met a problem similar to mindexplore. In the step 15, when I type "library (cattle)" It showed
" R session is headless; GTK+ not initialized.
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data."
then, I type "rattle()", it showed
"Error in rattle() : Can't load RGtk2.
A windowing system can't be accessed?
Maybe you are using a remote terminal (ssh) or RStudio browser connection.
Consider using remote desktop, ssh -X, or X2Go depending on your platform.
Running rattle() locally on a desktop is the default.

(R:88432): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()"

I don't know how to solve this problem.

@bsou
Copy link

bsou commented Jan 30, 2018

@uiang Did you get a solution to your problem?

Seems like I have run into a similar problem.

I'm using Mac OS High Sierra 10.13.2 and have R 3.4.1.

I run into the following issue, after trying to install RGtk2 using the following command

$ R CMD INSTALL ~/Downloads/RGtk2_2.20.34.tar.gz
........

installing to /Library/Frameworks/R.framework/Versions/3.4/Resources/library/RGtk2/libs
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded

Error: package or namespace load failed for ‘RGtk2’:
.onLoad failed in loadNamespace() for 'RGtk2', details:
call: .RGtkCall("S_gtk_builder_get_type", PACKAGE = "RGtk2")
error: object has no G type
Error: loading failed
Execution halted
ERROR: loading failed

removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/RGtk2’


Any pointers on this would be helpful.

@lizpund
Copy link

lizpund commented Feb 1, 2018

@zhiyzuo That seems to have done the trick! Thank you so much.

@mschmidty
Copy link

Thanks for your tutorial. I really appreciate it. I am having the same problem when I try to load RGtk2 from the ~/Downloads folder. Some things I have tried:I checked and I do have gtk+ in my local/cellar folder. I also checked my .bash_profile and it looks like the path is in there. I also tried to load the source file from Xquartz with no luck. I'm not really sure what to do. Here's my error just in case:

* installing to library ‘/Users/mikes/Library/R/3.4/library’
* installing *source* package ‘RGtk2’ ...
** package ‘RGtk2’ successfully unpacked and MD5 sums checked
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for INTROSPECTION... no
checking for GTK... no
configure: error: GTK version 2.8.0 required
ERROR: configuration failed for package ‘RGtk2’
* removing ‘/Users/mikes/Library/R/3.4/library/RGtk2’

Can you elaborate @MindExplore about how you loaded the package in XQuarts. I tried and it still didn't work.

@Yupla
Copy link

Yupla commented Mar 7, 2018

First of all thank you very much for this tutorial. I'm struggling on the launch of rattle just by itself. here is the result I get when I try tu use rattle in rstudio :

library(rattle)
R session is headless; GTK+ not initialized.
Rattle: A free graphical interface for data mining with R.
Version 5.0.14 Copyright (c) 2006-2017 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.
rattle()

(R:88491): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
Error in rattle() : Can't load RGtk2.
A windowing system can't be accessed?
Maybe you are using a remote terminal (ssh) or RStudio browser connection.
Consider using remote desktop, ssh -X, or X2Go depending on your platform.
Running rattle() locally on a desktop is the default.

Like you told another user here I tried to first load RGtk2 in the xquartz terminal but it does't seem to work. Do you have any idea on this ?

@hrgentry
Copy link

hrgentry commented May 9, 2018

@zhiyzuo, thanks for you efforts in presenting this tutorial. At Step 7, when applying brew install --with-x11 cairo, brew gave "Warning: cairo: this formula has no --with-x11 option so it will be ignored!", how do you enable the --with-x11 option at this step? Thanks!

@jimmerricks
Copy link

@cratzdo The most recent commit to cairo.rb removed the --with-x11 option. I used brew edit cairo to replace the Formula with the one at: https://github.com/Homebrew/homebrew-core/blob/1fea60405bf98c6385dfba18c75a7fb667dc3a40/Formula/cairo.rb.

@chicofish
Copy link

@jamesmnw for(i in 1:1000000){print("THANKS")} That hidden error in the cairo build of ignoring the -x11 flag caused me days of grief. Thanks for pointing that out. Your edit worked perfectly, allowing the rest of the instructions to work. I can now Rattle and RQDA and the world is a better place. :-)

@vincent-yung
Copy link

@milti, follow @jamesmnw's advice and make sure to brew reinstall --with-x11 cairo after editing the cairo formula.

@ScarlettU
Copy link

ScarlettU commented May 27, 2018

Thanks for your detailed advice. But it is still frustrating for me.
After typing "brew install --build-from-source --verbose gtk+" , I received "Error: gtk+ 2.24.32 did not build"
Please help me out. It's too hard for me.

@wabee
Copy link

wabee commented May 29, 2018

The key to success for me was to use @jamesmnw advice and edit the configuration file for cairo using the formula supplied in his post and build. After that gtk+ build without errors. I could then just follow the instructions to install RGtk2 and cairodevice + rattle. To bad they messed up Homebrews version of cairo and caused all these problems

@hughng92
Copy link

hughng92 commented Jun 4, 2018

Hello,
I need help. I am at step 8 with "brew edit gtk+"
When I am done editing the last two lines in df install, I do not know how to save or quit in the terminal.
I did run export EDITOR = vim.
I hope I provided info for troubleshooting.
Thanks a lot.

@aniket-cybrilla
Copy link

aniket-cybrilla commented Jun 12, 2018

What is the solution to the below?

~/Downloads -> R CMD INSTALL RGtk2_2.20.34.tar.gz
During startup - Warning messages:
1: Setting LC_TIME failed, using "C"
2: Setting LC_MESSAGES failed, using "C"
3: Setting LC_MONETARY failed, using "C"
* installing to library ‘/usr/local/lib/R/3.5/site-library’
* installing *source* package ‘RGtk2’ ...
** package ‘RGtk2’ successfully unpacked and MD5 sums checked
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for INTROSPECTION... no
checking for GTK... no
configure: error: GTK version 2.8.0 required
ERROR: configuration failed for package ‘RGtk2’
* removing ‘/usr/local/lib/R/3.5/site-library/RGtk2’

As directed the version of GTK I manage to install is 2.24.32_2. But for RGtk2 it needs 2.8.0? Could you elaborate on the exact steps to perform to achieve this please?

@yihui
Copy link

yihui commented Jun 14, 2018

As I just pointed out in a comment under @zhiyzuo's post (https://zhiyzuo.github.io/installation-rattle/#comment-3944233914), the whole thing can be simplified to this:

system('brew install gtk+')

local({
  if (Sys.info()[['sysname']] != 'Darwin') return()

  .Platform$pkgType = 'mac.binary.el-capitan'
  unlockBinding('.Platform', baseenv())
  assign('.Platform', .Platform, 'package:base')
  lockBinding('.Platform', baseenv())

  options(
    pkgType = 'both', install.packages.compile.from.source = 'always',
    repos = 'https://macos.rbind.org'
  )
})

install.packages(c('RGtk2', 'cairoDevice', 'rattle'))

No more struggling with editing the gtk+ formula :)

@bison31205
Copy link

thx,it work!

@sharkdeng
Copy link

I am getting this when doing "R CMD INSTALL RGtk2_2.20.33.tar.gz"

configure: error: GTK version 2.8.0 required

I am on MacOS Sierra 10.12.6, R version is 3.4.2
When I did "brew install --build-from-source --verbose gtk+" it installed GTK 2.24.31_1

I encountered same problem. Did you solve it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment