如何从源代码安装R包?

如何从源代码安装R包?,r,package,installation,r-faq,R,Package,Installation,R Faq,我的一个朋友给我发来了这本关于英语的很棒的教程。我真的很想试试。然而,第一步是从源代码安装一个名为RJSONIO的包 我对R相当了解,但我不知道如何从源代码安装软件包 我正在运行Mac OSX。如果文件在本地,请使用install.packages()并设置repos=NULL: install.packages(path_to_file, repos = NULL, type="source") 其中,path\u to\u file表示完整路径和文件名: 在Windows上,它看起来像这

我的一个朋友给我发来了这本关于英语的很棒的教程。我真的很想试试。然而,第一步是从源代码安装一个名为RJSONIO的包

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


我正在运行Mac OSX。

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

install.packages(path_to_file, repos = NULL, type="source")
其中,
path\u to\u file
表示完整路径和文件名:

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

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

install.packages(path_to_file, repos = NULL, type="source")
其中,
path\u to\u file
表示完整路径和文件名:

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

下载源程序包,打开Terminal.app,导航到您当前拥有该文件的目录,然后执行:

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

请注意,只有在以下情况下才能成功:a)包不需要编译,或b)存在编译所需的系统工具。请参阅:

下载源程序包,打开Terminal.app,导航到您当前拥有该文件的目录,然后执行:

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

请注意,只有在以下情况下才能成功:a)包不需要编译,或b)存在编译所需的系统工具。请参阅:

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


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


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

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

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

R CMD build --binary RJSONIO_0.2-3.tar.gz
从源代码处安装旧版本软件包的一个补充性方便(但不重要)技巧

首先,如果您调用“install.packages”,它总是从repo安装最新的包。如果要安装较旧版本的软件包,比如说为了兼容性,可以调用install.packages(“url\u to\u 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_模式下使用此技巧,以便管理不同版本的软件包:

参考资料:

这是从源代码安装旧版本软件包的一个方便(但不重要)的补充提示

首先,如果您调用“install.packages”,它总是从repo安装最新的包。如果要安装较旧版本的软件包,比如说为了兼容性,可以调用install.packages(“url\u to\u 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_模式下使用此技巧,以便管理不同版本的软件包:

参考:

,您可以直接从github存储库地址安装。因此,如果您希望包位于
https://github.com/twitter/AnomalyDetection

library(devtools)
install_github("twitter/AnomalyDetection")
做到这一点。

,您可以直接从github存储库地址安装。因此,如果您希望包位于
https://github.com/twitter/AnomalyDetection

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

成功了。

我尝试了这个,但出现了一个错误:*安装源程序包“RJSONIO”…**libs**arch-i386 sh:make:command not found错误:在第3行停止的包'RJSONIO'的编译失败*删除'/Library/Frameworks/R.framework/Versions/2.9/Resources/Library/RJSONIO'下载的包位于'/private/var/folders/Ey/eyzhyjoksmsmssz6k87peu+++TI/-Tmp-/Rtmpe3C96p/下载的包'更新中“.Library”中程序包的HTML索引警告消息:in install.packages(“RJSONIO”,repos=“”,:安装程序包“RJSONIO”的退出状态为非零您是否安装了开发人员工具?它们在Mac OS X安装dvd中。由于此程序包包含C代码,您需要一个编译器从源代码处安装它。我怀疑我没有安装开发人员工具。至少,我不记得安装了它们。谢谢!如果您是在windows上执行此操作,您可以从以下位置获取开发人员工具…确保在安装时选中“更新路径”框(可能有点难以阅读…只是选中了出现的未选中框)我尝试了此操作,但出现了一个错误:*安装源程序包“RJSONIO”…**libs**arch-i386 sh:make:command not found错误:在第3行停止了对程序包“RJSONIO”的编译*删除“/Library/Frameworks/R.framework/Versions/2.9/Resources/Library/RJSONIO”下载的程序包位于“/private/var/folders”中/Ey/EYZHYJOKSMSSZ6K87PEU+++TI/-Tmp-/Rtmpe3C96p/downloaded_packages“正在更新“.Library”中的程序包HTML索引”警告消息:在install.packages(“RJSONIO”,repos=“”,:安装程序包“RJSONIO”的退出状态为非零您是否安装了开发人员工具?它们在Mac OS X安装dvd中。由于此程序包包含C代码,您需要一个编译器从源代码处安装它。我怀疑我没有安装开发人员工具。至少,我不记得安装了它们。谢谢!如果您是在windows上执行此操作,您可以从以下位置获取开发人员工具…确保在安装时选中“更新路径”框(可能有点难以阅读…只是选中了出现的未选中框)我尝试了此操作,但出现了错误