相关文章推荐
会搭讪的熊猫  ·  System.Data.OracleClie ...·  3 月前    · 
性感的大象  ·  Unicode、UTF-8、UTF-16 ...·  1 年前    · 
儒雅的豆芽  ·  Oracle ...·  1 年前    · 
R version 3.5 .1 ( 2018 - 07 - 02 ) -- "Feather Spray" Platform : x86_64 - pc - linux - gnu ( 64 - bit ) R是自由软件,不带任何担保。 在某些条件下你可以将其自由散布。 用 'license()' 'licence()' 来看散布的详细条件。 R是个合作计划,有许多人为之做出了贡献 . 'contributors()' 来看合作者的详细情况 用 'citation()' 会告诉你如何在出版物中正确地引用R或R程序包。 用 'demo()' 来看一些示范程序,用 'help()' 来阅读在线帮助文件,或 用 'help.start()' 通过HTML浏览器来看帮助文件。 用 'q()' 退出R . Microsoft R Open 3.5 .1 The enhanced R distribution from Microsoft Using the Intel MKL for parallel mathematical computing ( using 64 cores ) . Default CRAN mirror snapshot taken on 2018 - 08 - 01. See : https : / / mran . microsoft . com / . [ 原来保存的工作空间已还原 ]

现在root下已经安装过了MRO(Microsoft R Open)4.0.2,但是普通用户怎么安装呢?

上网搜索了一下,发现可以再非root用户下安装,有两种途径:

1,conda安装

conda install -c r r-microsoftr

但是版本还是3.5,忧伤,不是最新版的

2,解析install.sh的代码,

代码来源:https://www.jianshu.com/p/5958fa98d42f

# 1.下载并解压官方安装包
wget https://mran.blob.core.windows.net/install/mro/3.5.1/microsoft-r-open-3.5.1.tar.gz
tar -xf microsoft-r-open-3.5.1.tar.gz
cd microsoft-r-open/
# 2. 查看 install.sh 内容
less install.sh
# 分析发现脚本判断了当前操作系统然后依次安装(以 YUM 为例)
# ${SCRIPT_DIR}/rpm/microsoft-r-open-mro*.rpm
# ${SCRIPT_DIR}/rpm/microsoft-r-open-foreachiterators*.rpm
# ${SCRIPT_DIR}/rpm/microsoft-r-open-mkl*.rpm
# 3. 分别查看三个 rpm 包的安装脚本,重点看 postinstall scriptlet 部分的内容
rpm -qp --scripts rpm/microsoft-r-open-mro*.rpm
rpm -qp --scripts rpm/microsoft-r-open-foreachiterators*.rpm
rpm -qp --scripts rpm/microsoft-r-open-mkl*.rpm
# 分析发现 mro* 包是在往 /usr/bin/ 下面写链接文件
# foreachiterators* 没有做任何事情
# mkl* 备份了原有的 R/lib/*.so 文件,并拷贝了一套新的动态链接库文件覆盖到了安装路径中
# 4. 手工解压 rpm 包
rpm2cpio rpm/microsoft-r-open-mro*.rpm |cpio -idmv
rpm2cpio rpm/microsoft-r-open-foreachiterators*.rpm |cpio -idmv
rpm2cpio rpm/microsoft-r-open-mkl*.rpm |cpio -idmv
# 5. 手工执行 postinstall scriptlet
INSTALL_PREFIX="./opt/microsoft/ropen/3.5.1/" # 从前面解压的路径可以看出来
mkdir -p ${INSTALL_PREFIX}/lib64/R/backup/lib
mv ${INSTALL_PREFIX}/lib64/R/lib/*.so ${INSTALL_PREFIX}/lib64/R/backup/lib
cp ${INSTALL_PREFIX}/lib64/R/backup/lib/libR.so ${INSTALL_PREFIX}/lib64/R/lib
cp ${INSTALL_PREFIX}/stage/Linux/bin/x64/*.so ${INSTALL_PREFIX}/lib64/R/lib
# 6. 拷贝解压完的目录到指定安装位置
MRO_HOME="~/mro"
cp ${INSTALL_PREFIX} ${MRO_HOME}
# 7. 设置环境变量
# 注:R_HOME 会影响含 C++ 的 package 编译安装时寻找的头文件和链接库,详见 ${INSTALL_PREFIX}/lib64/R/etc/Makevars。
export R_HOME=${MRO_HOME}/lib64/R
export PATH=${MRO_HOME}/bin:${PATH}

上面应该可以成功,但是很复杂,我明明有root权限,为何不能直接用root下的R呢?

正确的方法

发现MRO安装的路径:

/opt/microsoft/ropen/4.0.2/lib64/R/bin

查看我自己的R路径:

$ which R
~/anaconda3/bin/R

把我的R路径,建立软链到MRO的路径下即可!

cd ~/bin/
ln -s /opt/microsoft/ropen/4.0.2/lib64/R/bin/R .

然后查看一下R的路径:

$ ll R
lrwxrwxrwx 1 dengfei dengfei 40 28 13:17 R -> /opt/microsoft/ropen/4.0.2/lib64/R/bin/R

测试一下:

R version 4.0.2 (2020-06-22) -- "Taking Off Again" Platform: x86_64-pc-linux-gnu (64-bit) R是自由软件,不带任何担保。 在某些条件下你可以将其自由散布。 用'license()''licence()'来看散布的详细条件。 R是个合作计划,有许多人为之做出了贡献.'contributors()'来看合作者的详细情况 用'citation()'会告诉你如何在出版物中正确地引用R或R程序包。 用'demo()'来看一些示范程序,用'help()'来阅读在线帮助文件,或 用'help.start()'通过HTML浏览器来看帮助文件。 用'q()'退出R. Microsoft R Open 4.0.2 The enhanced R distribution from Microsoft Using the Intel MKL for parallel mathematical computing (using 64 cores). Default CRAN mirror snapshot taken on 2020-07-16. See: https://mran.microsoft.com/. [原来保存的工作空间已还原]

测试一下radian:

R version 4.0.2 (2020-06-22) -- "Taking Off Again" Platform: x86_64-pc-linux-gnu (64-bit)
本文转载于公众号大猫的R语言课堂,公众号作者使用这个MRO+Visual Studio 2015来运行。 文介绍了下载方法以及设置多线程。 传统的RGui是单线程运行,此时microsoft收购之后实现了多线程,在高效上跨出了一大步。 同时,笔者在使用的时候有一个非常大的困惑: 里面的函数包是不是跟原来的一样? ——从包的数量上来看,应该是一致的。但是不再是原来
安装SQL 2016的时候 Microsoft R OpenMicrosoft R Server 安装文件的位置,然后单击“下一步”。可从以下位置下载安装文件:。无法下一步解决办法
1.确定其他用户可否有使用该软件的权限:在该用户路径下直接运行该软件(输入完整安装路径),如ubuntu@ubuntu-G11CD:~$ /usr/local/MATLAB/R2015b/bin/matlab,如果可以运行,则用户ubuntu可以运行该软件;如果不行,则使用chmod 777对/usr/local/MATLAB/R2015b/bin/matlab进行权限获取。 2.如何输入mat...
安装前需要准备安装所需安装包: 1、 SSMS-Setup-CHS.exe(SQL Server Management Studio安装程序) 2、 SQLServer2016-x64-CHS.iso(没有的可以去微软官网下载) 注意: 需要安装SQL全部功能则需要先安装JDK,若只需要安装数据库功能的话则可以不安装JDK。 鼠标双击打开事先下载好的SQLServer2016-x64-CHS.iso 鼠标右击setup.exe选择以管理员身份运行。 点击安装。 然后点击全新SQL Server独立安装或向现有安装添加功能。 操作系统必须是64位x86兼容架构(多种称为AMD64,Intel64,x86-64,IA-32e,EM64T或x64芯片)的受支持版本的Windows。不支持安腾芯片(也称为IA-64)。推荐使用多核芯片。 内存必须至少需要2 GB的RAM; 推荐8 GB以上。 磁盘空间必须至少为5
关于anaconda 的安装请查看博文: Anaconda 安装 在Anaconda安装的时候,如果在安装配置那里填写的时候,默认是安装到/root目录下,若是想给其他用户使用,在安装的时候一定要切记不要安装在/root下 给普通用户使用的方法: 安装位置选择普通用户可以访问的,例如/opt下 普通用户登录后操作conda init 将相关的环境变量的信息写入自己的bashrc下 1、将文件安装到/opt下面 这里主要是在上面的Anacond
__subclasshook__方法是Python的一个特殊方法,用于判断一个类是否是另一个类的子类。它可以被重写以实现自定义的子类判断逻辑。下面是一个简单的代码实例: ```python class MyBaseClass: class MySubClass(MyBaseClass): class MyOtherClass: class MyMixin: @classmethod def __subclasshook__(cls, other): if cls is MyMixin: if any("__foo" in C.__dict__ for C in other.__mro__): return True return NotImplemented class MyChildClass(MyBaseClass, MyMixin): def __foo(self): class MyOtherSubClass(MyBaseClass): def __foo(self): print(issubclass(MySubClass, MyBaseClass)) # True print(issubclass(MyOtherClass, MyBaseClass)) # False print(issubclass(MyChildClass, MyBaseClass)) # True print(issubclass(MyOtherSubClass, MyBaseClass)) # False 在这个例子,我们定义了一个基类 MyBaseClass 和两个子类 MySubClass 和 MyOtherSubClass。我们还定义了一个不相关的类 MyOtherClass。然后,我们定义了一个名为 MyMixin 的混合类,它重写了 __subclasshook__ 方法。这个方法检查传入的类是否有一个名为 __foo 的方法,如果有,则认为这个类是 MyMixin 的子类。最后,我们定义了一个名为 MyChildClass 的子类,它继承了 MyBaseClass 和 MyMixin,同时定义了一个名为 __foo 的方法。我们还定义了一个名为 MyOtherSubClass 的子类,它也继承了 MyBaseClass,但没有定义 __foo 方法。最后,我们使用 issubclass 函数测试这些类之间的关系。