跳到内容

配置

本指南帮助管理员针对组织特定的用例配置RSPM。

先决条件

如果您还没有,请遵循以下说明安装和授权RSPM

的成员英格兰vs伊朗让球rstudio-pm组:

终端

sudo usermod -aG 英格兰vs伊朗让球rstudio-pm 

取代<用户名>使用所需的RSPM管理用户。运行此命令后,重新启动shell。

最后,添加rspm二进制的两种方式之一:

  • 设置别名:别名rspm = ' / opt 英格兰vs伊朗让球/ rstudio-pm / bin / rspm '
  • 添加rspm命令行二进制文件到你的系统路径:导出路径= / opt / rst英格兰vs伊朗让球udio-pm / bin:美元的道路

概述

右边的侧边栏包含快速入门指南。遵循最适合您的用例的方法。

例如,最基本的RSPM安装将:

您可以在将来随时添加额外的包支持。卡塔尔世界杯欧洲预选赛赛程表

配置服务器之后,将URL共享给web界面与你的用户。用户可以按照每个存储库中包含的说明设置R、Python或RSt英格兰vs伊朗让球udio来使用RSPM设置页面。

提示

英格兰vs伊朗让球RStudio工作台,以前的RStudi英格兰vs伊朗让球o服务器Pro,可以配置为使用RSPM,而不需要用户设置。有关更多信息,请参见配置说明

为凹口包

RSPM的一个常见用例是在internet访问受限的环境中提供CRAN包。

要使CRAN包可用:

  • 确保RSPM具有适当的元数据同步命令。RSPM从RStudio CRAN服务中提取包和元数据。英格兰vs伊朗让球
  • 创建一个存储库,并将其订阅到名为“cran”的内置源。

终端

<<#创建一个存储库:创建repo——nameprod-cran——描述“访问凹口包”<<#订阅cran源的存储库:$ RSPM认购——回购prod-cran——源凹口< <#启动同步:$ RSPM sync——type凹口

未来的更新按照配置文件中指定的时间表进行。有关更多信息,请参见更新凹口部分。

完成这些步骤后,prod-cranRepository在web界面中可用。

为凹口快照

如果您希望CRAN包只对特定日期可用,那么可以使用cran-snapshot源。例如:

终端

<<#启动同步:$ RSPM sync——type凹口< <#列出可用快照日期(增加计数以查看更多选项)$ RSPM列表cran快照计数25<<#从指定日期创建源:美元rspm创建——名字cran-by-date——类型cran-snapshot -快照202007-09 < <#创建一个存储库:创建repo——nameprod-cran——描述“按日期访问CRAN包”<<#订阅一个仓库到cran-snapshot源:$ RSPM认购——回购prod-cran——源cran-by-date < <#在未来更新:$ RSPM更新——来源cran-by-date -快照202010-06——提交

服务策划的CRAN子集

如果您希望只提供CRAN包的一个子集,则可以使用curated-cran源。受保护的CRAN源自动识别一组顶级R包所需的依赖关系。还可以指定使用哪个CRAN日期。

终端

<<#确保你有CRAN元数据:$ RSPM sync——type凹口< <#从特定的开始日期创建curated-cran来源:美元rspm创建——名字——类型子集curated-cran -快照202007-06 < <#指定你想添加的顶级包:$ RSPM添加——软件包ggplot2,闪亮的来源子集

结果将包含将要添加的所有包的信息。可以将提议保存到CSV文件中csv-out国旗。指定包所需的依赖项将被自动发现并包含.有选择地使用——include-suggests标记以发现和添加建议的包。

此操作将添加以下包:名称版本路径许可证需要编译依赖BH1.66.0-1声波测井- 1.0真正的蜡笔1.3.4 MIT +文件LICENSE no真正的消化0.6.15 GPL>2是的真正的htmltools0.3.6 GPL>2没有真正的httpuv1.4.3 GPL>2|文件许可是的真正的ISLR12 GPL-2没有jsonlite1.5 MIT +文件许可是真正的晚些时候0.7.3 GPL>2是的真正的... ... ... ... ...

要提交更改,请遵循以下说明:

终端

<<#提交你想添加的顶级包:$ RSPM添加——软件包ggplot2,闪亮的来源子集,快照202007-06——提交

为了确保一致性,必须一次更新整个源,而不是单个包。

终端

<<#在curated-cran源中更新包:$ RSPM更新——来源子集,快照202010-07

以下是改动的预览:

此操作将添加或存档以下包:名称、版本路径、许可证需要编译依赖操作1.1.10 GPL-2|GPL-3是的真正的添加callr3..4.4 MIT +文件LICENSE no .4真正的添加胶水1.4.2 MIT +文件LICENSE是真正的添加jsonlite1.7.1 MIT +文件LICENSE是真正的添加Rcpp1.0.5 GPL>2是的真正的添加rlang0.4.7 GPL-3是的真正的添加宠物猫3..0.3 MIT +文件LICENSE是真正的添加vctrs0.3.4 GPL-3是的真正的添加withr2.3.0 GPL>2没有真正的添加补丁1.1.8 GPL-2|GPL-3是存档呼叫3..4.3 MIT +文件许可证没有存档胶1.4.1 MIT +文件许可证是存档jsonlite1.7.0 MIT +文件许可证是存档…

提交更改:

终端

<<#在curated-cran源中更新包:$ RSPM更新——来源子集,快照202010-07——提交

最后,一定要订阅源库,让用户可以使用这些包:

终端

<<#创建一个存储库:创建repo——nameprod-cran——描述“按日期访问策划的CRAN包”<<#订阅一个库到cured -cran来源:$ RSPM认购——回购prod-cran——源子集

提示

策划的CRAN存储库还支持添加在文件中指定的大量包。卡塔尔世界杯欧洲预选赛赛程表为此,创建一个每行包含一个包名的文件。例如,/ tmp / packages.csv

水管工的ISLR

然后使用添加命令,这次使用——文件国旗:

终端

$ RSPM添加——file-in“/ tmp / packages.csv”——源子集

当地分发包

许多团队都有一些内部构建的包。如果在Git中跟踪内部包,那么请参阅Git包服务部分。

如果你的内部包已经构建,它们可以添加为Local包:

请注意

如果您不熟悉构建包的捆绑版本,那么可以联系维护包的R开发人员。

  • 将生成的tar文件复制到RSPM服务器:

终端

<<#创建一个本地源:美元rspm创建——名字prod-internal-src < <将每个本地tar包文件添加到源文件:<<# tar文件必须是命令行用户和运行帐号的rwx文件<<# RSPM(默英格兰vs伊朗让球认为rstudio-pm)$ RSPM添加——sourceprod-internal-src——路径“/道路/ / package_1.0.tar.gz”<<#创建一个存储库:创建repo——nameprod-internal——描述“我们内部包的稳定版本”<<#订阅源库:$ RSPM认购——回购prod-internal——源prod-internal-src

RSPM自动支持每个包的多个版本。卡塔尔世界杯欧洲预选赛赛程表当R开发人员准备好发布下一个包时,只需运行:

终端

rspm添加——源prod-internal-src——路径“/道路/ / package_2.0.tar.gz”

RSPM确保新安装的默认版本是2.0。

请注意

如果您希望使用较旧的版本,RSPM将1.0版本保存在存储库的归档文件中。

大多数内部包依赖于来自CRAN的包。在这种情况下,最简单的选择是创建一个同时订阅本地源和CRAN的存储库。

提示

存储库可以订阅多个如果您想让用户能够从一个地方安装内部包和CRAN包,请使用源代码。看到rspm订阅——帮助

Git包服务

前面的配置使用本地源,需要手动步骤添加和更新包。如果您的组织使用Git存储内部R包,那么您可以使用Git源代码自动化这个过程。

Git源代码需要一个有效的R安装。有关更多信息,请参见为R构建Git包

终端

<<#创建一个Git源码:美元rspm创建——类型git -名字prod-internal-src < <#创建一个Git构建器,配置为带表面标记的提交:创建git-builder——urlhttps://bitbucket.example.com/r-pkg.git——源prod-internal-src——build-trigger标签< <#检查状态,了解更多关于构建:$ RSPM列表git-builds——来源prod-internal-src——名字r-pkg < <#使用前面的ID读取构建日志<<#命令输出或者从“Activity”登录到UI:$ RSPM日志——transaction-id= (ID<<#创建一个资源库并订阅它:创建repo——nameprod-git——描述“我们内部包的稳定版本”$ RSPM订阅-来源prod-internal-src——回购prod-git

可以使用通过HTTP或SSH url访问的Git端点来构建包:https://github.com/user/repo.gitvs。git@github.com:用户/ repo.git

请注意

对于使用非标准端口的Git系统,RSPM还支持SSH模式,可以使用该模式指定端口。卡塔尔世界杯欧洲预选赛赛程表在实践中,这看起来像:ssh: / / git@github.com:英格兰vs伊朗让球 22 / rstudio / rstudio.git.的SSH协议部分服务器上的Git -协议为更多的信息。

如果Git URL使用SSH,那么它需要一个SSH密钥来进行身份验证。在这种情况下,在使用之前导入密钥创建git-builder命令。

SSH密钥不需要使用密码短语,但建议使用带密码短语的安全密钥。

终端

<<#导入SSH密钥:<<# passsphrase文件应该只是一个文本文件,passsphrase为关键字(避免离开bash历史):$ RSPM import ssh-key——nameread-r-pkg——路径/ / / ssh /关键——passphrase-path路径/道路/ /密码/文件< <可选地,从磁盘中删除密钥:<<# rm /道路/ / ssh /关键<<#创建Git构建器创建git-builder——urluser@bitbucket.example.com/r-pkg.git,源prod-internal-src——build-trigger标签,ssh密钥read-r-pkg

有关Git凭据安全性或使用HTTPS凭据的更多详细信息,请参见使用Git凭证访问受限的Git端点

有关提供Git包的更多信息,请参见为R构建Git包

Bioconductor服务包

RSPM可以从两种类型的存储库中为Bioconductor包提供服务:

  1. Bioconductor存储库并排提供多个版本的Bioconductor,并充当Bioconductor镜像。从这些存储库中使用BiocManager包中。这是使Bioconductor包可用的最常见的方法。
  2. R存储库在类似cran的存储库中提供单一版本的Bioconductor。包从这些存储库安装install.packages.与Bioconductor库不同,R库允许在同一个库中与Bioconductor包一起提供CRAN、Local和Git包。

使用的适当存储库类型取决于您的组织如何使用Bioconductor。

Bioconductor存储库

使用实例创建Bioconductor存储库。

请注意

所有Bioconductor版本都将同步并自动添加到存储库中。

终端

<< #创建一个名为“Bioconductor”的Bioconductor库:$ rspm Create repo——type= Bioconductor——name= Bioconductor << repository: Bioconductor - Bioconductor << #启动一个Bioconductor sync: $ rspm sync——type= Bioconductor <<…<<启动Bioconductor同步bioc-3.11-bioc。根据之前同步了多少数据,这可能需要一段时间。操作完成后将出现在Package Manager UI中。<<启动Bioconductor同步bioc-3.11-data/annotation。根据之前同步了多少数据,这可能需要一段时间。操作完成后将出现在Package Manager UI中。< <…<<生物导体同步完成。

我们还建议创建一个存储库,为过去的Bioconductor版本提供兼容的CRAN快照。要提供CRAN快照,创建一个只订阅CRAN的存储库:

终端

<< #检查一个现有的存储库是否只订阅了CRAN: $ rspm list <<…<< prod-cran - R << -cran (cran) << #如果不是,执行以下命令:<< #创建名为“prod-cran”的存储库:$ rspm Create repo——name=prod-cran——description='访问cran包' << #订阅存储库到cran源:$ rspm Subscribe——repo=prod-cran——source=cran << #启动cran同步:$ rspm sync——type=cran

Bioconductor知识库现在应该可以在web界面上使用了。如果创建了一个CRAN存储库,Bioconductor存储库的Setup页面将提供在使用CRAN快照部分。

R存储库

或者,您可以在R存储库中提供单一版本的Bioconductor。

首先,列出可用的Bioconductor版本,并创建所需版本的Bioconductor源:

终端

<<#列出可用的Bioconductor版本:$ rspm list bioconductor version <<可用的bioconductor version:< < 3.12< < 3< < 3.10< <…为Bioconductor 3创建一个源.11: $ RSPM create——类型bioconductor——版本3.厚< <源“bioc - 3.11”: <<类型:生物导体

然后,创建一个R库,订阅源,并同步源:

终端

<<创建一个名为' Bioconductor -3.11'的Bioconductor库:创建repo——namebioconductor - 3.11描述“Access Bioconductor 3.11包”<<#订阅Bioconductor资源库:$ RSPM认购——回购bioconductor - 3.11——源bioc - 3.11 < <#为Bioconductor源启动一个同步:$ RSPM sync——typebioconductor——源bioc - 3.11<<启动Bioconductor同步bioc-3.11-bioc。根据之前同步了多少数据,这可能需要一段时间。操作完成后将出现在Package Manager UI中。< <发起Bioconductor同步bioc - 3.11 -数据/注释。根据之前同步了多少数据,这可能需要一个.操作完成后将出现在Package Manager UI中。< <…< < Bioconductor同步bioc - 3.11完成。

对于过去的Bioconductor版本,我们还建议从这个存储库中提供与Bioconductor版本兼容的CRAN包。添加相应的CRAN包:

  1. 找到生物导体释放的最后日期。这通常是下一个生物导体释放的日期,可以找到在这里
  2. 使用。找到与此日期一致的CRAN快照凹口快照列表命令。
  3. 创建一个CRAN快照源并将其添加到存储库中。

例如,增加Bioconductor 3.11的CRAN包(目前截止到2020年10月28日):

终端

<<#确保CRAN元数据可用:$ RSPM sync——type凹口< <#列出可用的CRAN快照:$ RSPM list cran snapshots <<…< < 2020-10-29< < 202028< < 2020-10-27<< #为2020年10月28日创建一个CRAN快照源: $ RSPM create——类型cran-snapshot -快照202028 -名字凹口- 2020 - 10 - 28日< <#订阅CRAN快照来源:$ RSPM认购——回购bioconductor - 3.11——源凹口- 2020 - 10 - 28< <存储库:bioconductor - 3.11< <来源:< <——bioc 3.11 (Bioconductor)< <——凹口- 2020 - 10 - 28 (CR一个快照

Python和镜像PyPI (Beta)

RSPM的另一个常见用例是使PyPI (Python包索引)包在internet访问受限的环境中可用。

要使PyPI包可用:

  • 使用sync命令确保RSPM具有适当的元数据。RSPM从RStudio PyPI服务中提取包和元数据。英格兰vs伊朗让球
  • 创建一个存储库,并将其订阅到名为“PyPI”的内置源代码。

终端

<<#创建Python库:创建repo——namepypi——类型python -描述“访问PyPI包”<<存储库:pypi - Python<< #订阅存储库到PyPI源:$ RSPM subscribe——repo=pypi——source=pypi< <库: pypi< <来源:< <——pypi (Python)启动PyPI同步:$ RSPM sync——type=pypi<<启动PyPI同步。根据之前同步了多少数据,这可能需要一段时间。操作完成后将出现在Package Manager UI中。< <年代napshotspypi:0/34----------------------------------------------------------------------------------------------------------------------------------<< pypi快照中的包:14127/231734= = = = = =>-------------------------------------------------------------------------------------------------------5 m9

提示

在启用PyPI包处理大型元数据和包下载之前,配置额外的存储。

有关RSPM的Python功能的更多信息,请参见Python文档部分。