【问题标题】:How do I install an R package from source?如何从源代码安装 R 包?
【发布时间】:2010-12-01 05:43:41
【问题描述】:

一位朋友在webscraping The New York Times with R 上向我发送了这个很棒的教程。我真的很想尝试一下。但是,第一步是从源代码安装一个名为 RJSONIO 的包。

我相当了解 R,但我不知道如何从源代码安装包。

我正在运行 Mac OS X。

【问题讨论】:

标签: r


【解决方案1】:

From CRAN,可以直接从 GitHub 仓库地址安装。所以如果你想要https://github.com/twitter/AnomalyDetection的包裹,使用

library(devtools)
install_github("twitter/AnomalyDetection")

成功了。

【讨论】:

    【解决方案2】:

    下载源码包,打开Terminal.app,导航到你当前有文件的目录,然后执行:

    R CMD INSTALL RJSONIO_0.2-3.tar.gz
    

    请注意,这只有在以下情况下才会成功:a) 软件包不需要编译或 b) 存在编译所需的系统工具。请参阅:R for Mac OS X

    【讨论】:

    • 我试过这个并得到一个错误:Madjoro-MacBook-Pro:~ Madjoro$ R CMD INSTALL RJSONIO_0.2-3.tar.gz 警告:无效的包'RJSONIO_0.2-3.tar。 gz' 错误:错误:未指定包
    • 您必须指定 .tar.gz 文件的正确路径,并且需要 XCode 工具 (developer.apple.com/TOOLS/Xcode)。
    • 有没有办法从源代码构建二进制 .zip?
    • 找到解决方案,需要使用--binary选项。
    • 您有多少次来这里是因为您输入的是 install 而不是 INSTALL?
    【解决方案3】:

    此外,您可以使用--binary 选项构建二进制包。

    R CMD build --binary RJSONIO_0.2-3.tar.gz
    

    【讨论】:

    • R CMD build --binary 已弃用;改用R CMD INSTALL --build
    【解决方案4】:

    如果您在本地有文件,则使用install.packages() 并设置repos=NULL

    install.packages(path_to_file, repos = NULL, type="source")
    

    path_to_file 代表完整路径和文件名:

    • 在 Windows 上,它看起来像这样:"C:\\RJSONIO_0.2-3.tar.gz"
    • 在 UNIX 上将如下所示:"/home/blah/RJSONIO_0.2-3.tar.gz"

    【讨论】:

    • 如果 file_name_and_path 是 R 包的本地源代码库,这也有效。
    【解决方案5】:

    从源代码安装旧版本软件包的补充方便(但微不足道)提示。

    首先,如果您调用“install.packages”,它总是从 repo 安装最新的包。如果你想安装旧版本的包,比如为了兼容性,你可以调用 install.packages("url_to_source", repo=NULL, type="source")。例如:

    install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")
    

    不用手动下载包到本地磁盘切换到命令行或者从本地磁盘安装,我觉得非常方便,并且简化了调用(一步)。

    另外:您可以将此技巧与 devtools 库的 dev_mode 一起使用,以管理不同版本的包:

    参考:doc devtools

    【讨论】:

      【解决方案6】:

      您可以直接从存储库安装(注意type="source"):

      install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
      

      【讨论】:

      • 我试过这个并得到一个错误: * 安装 source 包 'RJSONIO' ... ** libs ** arch - i386 sh: make: command not found 错误:包 'RJSONIO' 的编译失败 RMate 在第 3 行停止 * 删除 '/Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO' 下载的包位于 '/private/var/folders/Ey/EyzhYjoKESmsmsZ6K87PeU +++TI/-Tmp-/Rtmpe3C96p/downloaded_pa​​ckages' 更新 '.Library' 中包的 HTML 索引警告消息:在 install.packages("RJSONIO", repos = "omegahat.org/R", : 安装包 'RJSONIO'退出状态非零
      • 您是否安装了开发者工具?它们包含在 Mac OS X 安装 DVD 中。由于这个包有 C 代码,你需要一个编译器来从源代码安装它。
      • 我怀疑我没有安装开发者工具。至少,我不记得安装它们。谢谢!
      • 如果您在 Windows 上执行此操作,您可以从 murdoch-sutherland.com/Rtools 获取开发人员工具...确保在安装时选中更新路径的框(可能有点难以阅读....刚刚选中出现的未选中框)
      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多