2016-09-21 36 views
9

niedawno zainstalowałem Microsoft R Open 3.3.1 na moim MacBooku Pro (El Capitan 10.11.6). Kiedy otwieram RStudio lub korzystać z konsoli R dostaję ten komunikat ostrzegawczy:Komunikat ostrzegawczy podczas otwierania konsoli RStudio lub konsoli R

Warning message: 
In doTryCatch(return(expr), name, parentenv, handler) : 
    unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so': 
    dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Symbol not found: _CGBitmapContextCreate 
    Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so 
    Expected in: flat namespace 
in /Library/Frameworks/R.framework/Resources/modules//R_X11.so 

Czy znasz sposób, aby uniemożliwić drukowanie wiadomości (lub rozwiązać problem)?

Dzięki!

+1

Brzmi jak świetne pytanie do wsparcia Microsoft. Czy błąd zniknie po przełączeniu z powrotem na CRAN R? – hrbrmstr

+1

Próbowałem z wersją CRAN R iw takim przypadku nie ma ostrzeżenia. – amarchin

+0

@amarchin, jak na https://github.com/IRkernel/IRkernel/issues/300, spróbuj zainstalować XQuartz z https://www.xquartz.org/. – jav

Odpowiedz

5

przypadku instalacji CRAN R, widzę, że R_X11.so referencje następujące biblioteki:

[email protected]:/Library/Frameworks/R.framework/Resources/modules 
$ otool -L R_X11.so 
R_X11.so: 
     R_X11.so (compatibility version 0.0.0, current version 0.0.0) 
     /opt/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0) 
     /opt/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
     /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0) 
     /opt/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0) 
     /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0) 
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) 
     /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) 
     /opt/X11/lib/libXt.6.dylib (compatibility version 7.0.0, current version 7.0.0) 
     /opt/X11/lib/libXmu.6.dylib (compatibility version 9.0.0, current version 9.0.0) 
     /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libR.dylib (compatibility version 3.3.0, current version 3.3.1) 
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0) 

tej biblioteki nie odwołujące się do symbolu proponujesz:

[email protected]:/Library/Frameworks/R.framework/Resources/modules 
$ nm R_X11.so | grep CGBitmap 

Jednak dla instalacji MRO, Widzę następujące biblioteki i symbole:

[email protected]:/Volumes/Samsung 850 EVO/Library/Frameworks/R.framework/Resources/modules 
$ otool -L R_X11.so 
R_X11.so: 
     R_X11.so (compatibility version 0.0.0, current version 0.0.0) 
     /opt/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0) 
     /opt/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0) 
     /opt/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0) 
     /usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0) 
     /opt/X11/lib/libXt.7.dylib (compatibility version 8.0.0, current version 8.0.0) 
     /opt/X11/lib/libXmu.6.dylib (compatibility version 9.0.0, current version 9.0.0) 
     /Library/Frameworks/R.framework/Versions/3.3.1-MRO/Resources/lib/libR.dylib (compatibility version 3.3.0, current version 3.3.1) 
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1255.1.0) 
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) 

z ref erenced symbole:

[email protected]:/Volumes/Samsung 850 EVO/Library/Frameworks/R.framework/Resources/modules 
$ nm R_X11.so | grep CGBitmap 
       U _CGBitmapContextCreate 

Symbole te są zazwyczaj dostarczane przez CoreGraphics.framework:

[email protected]:/System/Library/Frameworks/CoreGraphics.framework/Versions/A 
$ nm CoreGraphics | grep CGBitmapContext 
0000000000046321 T _CGBitmapContextCreate 
< ... other symbols ... > 

Jednak MRO generowane R_X11.so nie odwołuje się do tego, a więc odnośnika z tych symboli nie powiedzie się.

tl; dr: Microsoft wysyła Ci uszkodzone oprogramowanie, które nie zawiera linków do bibliotek, które dostarczają potrzebnych symboli. Zamiast tego użyj CRAN-provided binaries of R.

0

Mam również problem. Problem został rozwiązany po zainstalowaniu XQuartz, a następnie ponownym logowaniu systemu.

Uwaga: użycie X11 (w tym tcltk) wymaga zainstalowania XQuartz, ponieważ nie jest już częścią systemu OS X. Zawsze instaluj ponownie XQuartz podczas uaktualniania systemu OS X do nowej wersji głównej.