iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何解决R语言中install_github中无法安装遇到的问题
  • 870
分享到

如何解决R语言中install_github中无法安装遇到的问题

2023-06-14 14:06:39 870人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关如何解决R语言中install_GitHub中无法安装遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU

这篇文章将为大家详细讲解有关如何解决R语言中install_GitHub中无法安装遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

什么是R语言

R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具

首先,让我们来进入常规步骤

我安装的是recharts包,正常的写法呢,就是以下这个样子:

install.packages("devtools")#devtools::install_github("madloGos/recharts")

第一个问题:

然而对于今天的我来说,那就太天真了,首先踏入的第一个坑:

无法打开URL'Http://yihui.name/xran/src/contrib/PACKAGES' Warning in install.packages : 从zip文件中抽取1时出了错

类似于无法访问的错误,第一步的解决办法,就是改变包的镜像。

在Tools->Global Options->packages->change->china Beijing.

如下图所示:

如何解决R语言中install_github中无法安装遇到的问题

这可能是R新版本的默认设置为外国版本,之前的版本上没有遇到过类似镜像的问题,解决完这里,如果是稍微简单点的问题就可以被解决了,然而我的路才刚刚开始。

第二个问题:

要在https://cran.rstudio.com/bin/windows/Rtools/网站中下载rtools错误大概就是这么写的,具体我已经无法还原了,相信这个报错大家都能看懂,下载未被冻结或定的rtools,注意安装时要选择自动添加路径,不然还得手动添加,容易出错。这一步下来,正常的包都可以安装了。

第三个问题

错误为:

failed to receive handshake ssl/tls connection failed github

第一种方法:

始终无法访问github,查过许多资料,有一部分说是IE出了问题,在选项中一次勾选SSL之类的,然而我一开始没有找到这个地方,不过好像这个方法蛮简单,大家如果遇到类似问题可以去百度尝试一下,

第二种方法:

很可能是因为你的网络被设置而代理,或者是你有下载翻墙软件串改了你的internet设置,具体操作如下:打开IE浏览器,选择工具->internet选项->连接->局域网设置->点击自动设置(若勾选,则点为不勾选。若不勾选,则点为勾选),下面的LAN设置不要勾选

第三种方法:

打开git bash,输入下列代码

$ git config --global http.sslBackend "openssl"$ git config --global http.sslCAInfo c://program files//R//R-3.6.3//library//openssl//cacert.pem(此为R中cacert.pem的文件路径)

运行完之后退出,重新打开R,再执行安装命令

install.packages("devtools")devtools::install_github("madlogos/recharts")

就OK了。

补充:R安装xml2 (安装devtools)

安装devtools

今天看到了一个R上的一个包,似乎是要用到devtools。发现我linux电脑上的R并没有装devtools这个包。想着直接安装一下,没想到却意外频发。

R:R-4.0.0

devtools需要很多依赖包,用R自带的

install.packages("devtools")

可以很好地解决这些问题,但是发现安装失败。仔细检查后发现是安装xml2的时候出现了意外。

xml2这个包没有装上,导致了最终devtools没有安装成功。

安装xml2时报错:

Error : unable to load shared object '/home/Litedg/Programs/R-4.0.0/lib64/R/library/00LOCK-xml2/00new/xml2/libs/xml2.so': libiconv.so.2: cannot open shared object file: No such file or directory

开始以为是没有装libxml2、libxml2-devel。用yum装过了一下,发现只是版本有些旧,但还是有的。

然后发现在报错的最前面:

--- Please select a CRAN mirror for use in this session ---

trying URL 'https://cloud.r-project.org/src/contrib/xml2_1.3.2.tar.gz'

Content type 'application/x-gzip' length 271876 bytes (265 KB)

==================================================

downloaded 265 KB

* installing *source* package 'xml2' ...

** package 'xml2' successfully unpacked and MD5 sums checked

** using staged installation

Found pkg-config cflags and libs!

Using PKG_CFLAGS=-I/home/Litedg/Programs/anaconda3/include/libxml2 -I/home/Litedg/Programs/anaconda3/include

Using PKG_LIBS=-L/home/Litedg/Programs/anaconda3/lib -lxml2 -L/home/Litedg/Programs/anaconda3/lib -lz -

L/home/Litedg/Programs/anaconda3/lib -llzma -lpthread -L/home/Litedg/Programs/anaconda3/lib -liconv -

L/home/Litedg/Programs/anaconda3/lib -licui18n -licuuc -licudata -lm -ldl

** libs

所以应该是由于调用了anaconda3下面的libxml2导致的原因。想在环境变量中将anaconda3给注释掉,但是会调到pymol下面,后来发现直接修改xml2安装包的configure就好了。

找到xml2的安装包。在报错的最后面会给出:

The downloaded source packages are in

'/tmp/RtmpUV7uZp/downloaded_packages'

Updating html index of packages in '.Library'

Making 'packages.html' ... done

Warning message:

In install.packages("xml2") :

installation of package 'xml2' had non-zero exit status

找到这个目录,解压:

cd /tmp/RtmpUV7uZp/downloaded_packagestar -zxvf xml2_1.3.2.tar.gz

修改其中configure文件:

  xml2-config --version >/dev/null 2>&1  if [ $? -eq 0 ]; then    PKGCONFIG_CFLAGS=`xml2-config --cflags`    PKGCONFIG_LIBS=`xml2-config --libs`     # MacOS versions El Capitan and later ship a xml2-config which appends `xcrun    # --show-sdk-path` to the xml2-config. So we remove it if it is present.    # (https://stat.ethz.ch/pipermail/r-sig-mac/2016-September/012046.html)    if [ "$OS_TYPE" = "Darwin" ] && [ "$OS_VERSION" -gt "13" ] && [ "$OS_VERSION" -lt "17" ]; then      PKGCONFIG_CFLAGS=`echo $PKGCONFIG_CFLAGS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"`      PKGCONFIG_LIBS=`echo $PKGCONFIG_LIBS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"`    fi     # Fix a missing libxml2 directory on the requested include directory    # https://github.com/r-lib/xml2/issues/296    if [ "${OS_TYPE}" = "Darwin" ] && echo "${PKGCONFIG_CFLAGS}" | grep -sq "/usr/include$"; then      PKGCONFIG_CFLAGS="$PKGCONFIG_CFLAGS/libxml2"    fi   else    pkg-config --version >/dev/null 2>&1    if [ $? -eq 0 ]; then      PKGCONFIG_CFLAGS=`pkg-config --cflags $PKG_CONFIG_NAME`      PKGCONFIG_LIBS=`pkg-config --libs $PKG_CONFIG_NAME`    fi  fi

改成:

  if [ $(command -v pkg-config) ]; then   PKGCONFIG_CFLAGS=$(pkg-config --cflags $PKG_CONFIG_NAME)   PKGCONFIG_LIBS=$(pkg-config --libs $PKG_CONFIG_NAME) fi

即可。保存退出。

使用R CMD进行安装(在xml2目录下)

R CMD INSTALL ./

即可顺利安装xml2包。

其余的包使用

install.packages("devtools")

关于“如何解决R语言中install_github中无法安装遇到的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何解决R语言中install_github中无法安装遇到的问题

本文链接: https://www.lsjlt.com/news/271509.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 生态系统中流行库和框架的贡献指南
    作为 c++++ 开发人员,通过遵循以下步骤即可为流行库和框架做出贡献:选择一个项目并熟悉其代码库。在 issue 跟踪器中寻找适合初学者的问题。创建一个新分支,实现修复并添加测试。提交...
    99+
    2024-05-15
    框架 c++ 流行库 git
  • C++ 生态系统中流行库和框架的社区支持情况
    c++++生态系统中流行库和框架的社区支持情况:boost:活跃的社区提供广泛的文档、教程和讨论区,确保持续的维护和更新。qt:庞大的社区提供丰富的文档、示例和论坛,积极参与开发和维护。...
    99+
    2024-05-15
    生态系统 社区支持 c++ overflow 标准库
  • c++中if elseif使用规则
    c++ 中 if-else if 语句的使用规则为:语法:if (条件1) { // 执行代码块 1} else if (条件 2) { // 执行代码块 2}// ...else ...
    99+
    2024-05-15
    c++
  • c++中的继承怎么写
    继承是一种允许类从现有类派生并访问其成员的强大机制。在 c++ 中,继承类型包括:单继承:一个子类从一个基类继承。多继承:一个子类从多个基类继承。层次继承:多个子类从同一个基类继承。多层...
    99+
    2024-05-15
    c++
  • c++中如何使用类和对象掌握目标
    在 c++ 中创建类和对象:使用 class 关键字定义类,包含数据成员和方法。使用对象名称和类名称创建对象。访问权限包括:公有、受保护和私有。数据成员是类的变量,每个对象拥有自己的副本...
    99+
    2024-05-15
    c++
  • c++中优先级是什么意思
    c++ 中的优先级规则:优先级高的操作符先执行,相同优先级的从左到右执行,括号可改变执行顺序。操作符优先级表包含从最高到最低的优先级列表,其中赋值运算符具有最低优先级。通过了解优先级,可...
    99+
    2024-05-15
    c++
  • c++中a+是什么意思
    c++ 中的 a+ 运算符表示自增运算符,用于将变量递增 1 并将结果存储在同一变量中。语法为 a++,用法包括循环和计数器。它可与后置递增运算符 ++a 交换使用,后者在表达式求值后递...
    99+
    2024-05-15
    c++
  • c++中a.b什么意思
    c++kquote>“a.b”表示对象“a”的成员“b”,用于访问对象成员,可用“对象名.成员名”的语法。它还可以用于访问嵌套成员,如“对象名.嵌套成员名.成员名”的语法。 c++...
    99+
    2024-05-15
    c++
  • C++ 并发编程库的优缺点
    c++++ 提供了多种并发编程库,满足不同场景下的需求。线程库 (std::thread) 易于使用但开销大;异步库 (std::async) 可异步执行任务,但 api 复杂;协程库 ...
    99+
    2024-05-15
    c++ 并发编程
  • 如何在 Golang 中备份数据库?
    在 golang 中备份数据库对于保护数据至关重要。可以使用标准库中的 database/sql 包,或第三方包如 github.com/go-sql-driver/mysql。具体步骤...
    99+
    2024-05-15
    golang 数据库备份 mysql git 标准库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作