randy3k / radian

A 21 century R console
MIT License
2k stars 76 forks source link

radian not starting with different R version #297

Open rschauner opened 3 years ago

rschauner commented 3 years ago

I was trying to switch R versions to 4.0.5 but for whatever reason my old installation was not startable. So I built R and installed it to the system library (/Library/Frameworks/R.framework/Versions/4.0.5) and I am able to switch R to this version and load it in the terminal via R. However, once I try using radian, I get an error:

$radian
Traceback (most recent call last):
  File "/usr/local/bin/radian", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/radian/__init__.py", line 102, in main
    RadianApplication(r_home, ver=__version__).run(options)
  File "/usr/local/lib/python3.9/site-packages/radian/radianapp.py", line 96, in run
    rchitect.init(args=args, register_signal_handlers=True)
  File "/usr/local/lib/python3.9/site-packages/rchitect/setup.py", line 46, in init
    raise Exception(load_lib_error())
Exception: Cannot load shared library: dlopen(/Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib, 10): Library not loaded: libRblas.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib
  Reason: image not found

But when I try using R 4.1.0 (installed via binary):

$ radian
R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
Platform: x86_64-apple-darwin17.0 (64-bit)

r$>  

What could be the problem? I also tried building R without blas and lapack and radian didn't start either.

Install parameters R 4.0.5:

./configure \
    --prefix=/Library/Frameworks/R.framework/Versions/${R_VERSION}/Resources \
    --enable-memory-profiling \
    --enable-R-shlib \
    --with-blas \
    --with-lapack
randy3k commented 3 years ago

Does the file /Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib exists?

rschauner commented 3 years ago

Should have included that. Yes it does exist:

ls -lah /Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/
total 11096
drwxr-xr-x   5 root  admin   160B Jul 26 15:57 .
drwxr-xr-x  12 root  admin   384B Jul 26 15:57 ..
-rwxr-xr-x   1 root  admin   3.1M Jul 26 15:57 libR.dylib
-rwxr-xr-x   1 root  admin   217K Jul 26 15:57 libRblas.dylib
-rwxr-xr-x   1 root  admin   2.1M Jul 26 15:57 libRlapack.dylib
randy3k commented 3 years ago

Then I believe that it is a rpath issue.

What is otool -L /Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib?

If libRblas.dylib is missing, it can be added by

install_name_tool -id "@loader_path/libRblas.dylib" libRblas.dylib
rschauner commented 3 years ago

It doesn't look to be missing, but the version is 0.0.0...

otool -L /Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib
/Library/Frameworks/R.framework/Versions/4.0.5/Resources/lib/R/lib/libR.dylib:
    libR.dylib (compatibility version 4.0.0, current version 4.0.5)
    libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/gfortran/lib/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)
    /usr/local/gfortran/lib/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
    /usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 11.0.0, current version 11.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1677.104.0)
    /usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
    /usr/local/opt/pcre2/lib/libpcre2-8.0.dylib (compatibility version 11.0.0, current version 11.2.0)
    /usr/local/opt/xz/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.5.0)
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
    /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 64.2.0)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)