MacOS安装rJava
2023年02月20日
conda装好后还是有问题,找不到libjvm.so,在bashrc里指定不起作用,最后只能去Renviron【R最重要的配置文件】里指定,然后就成功了。
需要修改vi ~/.Renviron
1 | LD_LIBRARY_PATH = / home / zz950 / softwares / miniconda3 / jre / lib / amd64 / server |
如果还不顶用,那就去conda env的R lib里建一个软连接。
1 | cd /home/zz950/softwares/miniconda3/envs/r4p3/lib |
配置文件
R每次启动的时候都会读取两个文件:.Renviron:主要作用是设置环境变量,告诉R在哪里寻找外部程序,可以自定义用户信息
.Rprofile:每次R启动的时候会运行里面的代码,所以如果里面设置的很多代码,R启动就会变慢
R启动的时候最开始读取.Renviron文件,接着读取.Rprofile文件
2022年10月03日
conda YYDS
1 | conda install -c r r-rjava |
起因:一般没事不会装rJava,这里需要用到R包xlsx,所以才需要rJava。
还需要设置lib的path,确保能找到libjvm.so
1 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/zz950/softwares/miniconda3/jre/lib/amd64:/home/zz950/softwares/miniconda3/jre/lib/amd64/server |
R安装xlsx太慢,那就直接用conda装。
1 | conda install -c r r-xlsx |
rJava出了名的难装,一大堆问题。
核心的问题:
1. java版本问题,最好用1.8版本的java
2. 编译器的问题
3. 相关头文件header的问题
之前几次装过,但都放弃了,这次花了一下午终于搞定了。
对于MacOS,首先就是要配置好Java的环境,brew装java1.8
brew cask install java8 已经失效,无法安装。
参见这里,可以装另一个版本。
1 2 | brew tap adoptopenjdk /openjdk brew cask install adoptopenjdk8 |
然后需要管理java的环境
1 2 3 4 5 6 | brew install jenv echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8 .jdk /Contents/Home/ jenv global openjdk64-1.8.0.222 |
然后就是配置R的java环境,这一步必须要成功,否则后面无法进行
1 | R CMD javareconf |
大坑:java不是1.8或者java版本太老不对,这一步都会报错,总之就是用brew不断去试不同版本的java,直到成功。
最后就是装rJava了
1 | CC= "/usr/local/opt/llvm/bin/clang -fopenmp" R --quiet -e 'install.packages("rJava", type="source", repos="http://cran.us.r-project.org")' |
大坑:CC就是指定编译器,因为R会莫名其妙的用最老的clang来编译,那肯定会报错,其次后面的参数也必须添加。主要是这两个坑,后面源码安装。
最后的最后,如果在rstudio或jupyter里用rJava,还需要指定一下Java的位置,以便找到动态链接文件:
1 | Sys.setenv (JAVA_HOME= '/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home' ) |
总结:java一定要装对,最好配一个java多版本的管理软件,其次需要先配置R的java环境,最后就是用合适的编译器来源码安装。(做错任意一步都会导致rJava安装报错)
这个本来就是个版本混乱、多语言互斥的问题:
Java牛逼,导致大部分其他语言想调用它的功能;
Java永远在不断更新,其他调用它的包的代码也必须持续更新,所以良好的向下兼容是必须的;
关于编译器和头文件:
需要安装最新版的xcode,然后建立header文件的软链接
1 2 | /usr/local/opt/llvm/include /Applications/Xcode .app //Contents/Developer/Platforms/MacOSX .platform /Developer/SDKs/MacOSX .sdk /usr/include |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥