配置#
本指南帮助管理员针对组织特定的用例配置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——name=prod-cran——描述=“访问凹口包”<<#订阅cran源的存储库:$ RSPM认购——回购=prod-cran——源=凹口< <#启动同步:$ RSPM sync——type=凹口
未来的更新按照配置文件中指定的时间表进行。有关更多信息,请参见更新凹口部分。
完成这些步骤后,prod-cran
Repository在web界面中可用。
为凹口快照#
如果您希望CRAN包只对特定日期可用,那么可以使用cran-snapshot
源。例如:
终端
<<#启动同步:$ RSPM sync——type=凹口< <#列出可用快照日期(增加计数以查看更多选项)$ RSPM列表cran快照计数=25<<#从指定日期创建源:美元rspm创建源——名字=cran-by-date——类型=cran-snapshot -快照=202007-09 < <#创建一个存储库:创建repo——name=prod-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——name=prod-cran——描述=“按日期访问策划的CRAN包”<<#订阅一个库到cured -cran来源:$ RSPM认购——回购=prod-cran——源=子集
提示
策划的CRAN存储库还支持添加在文件中指定的大量包。卡塔尔世界杯欧洲预选赛赛程表为此,创建一个每行包含一个包名的文件。例如,/ tmp / packages.csv
:
水管工的ISLR
然后使用添加
命令,这次使用——文件
国旗:
终端
$ RSPM添加——file-in=“/ tmp / packages.csv”——源=子集
当地分发包#
许多团队都有一些内部构建的包。如果在Git中跟踪内部包,那么请参阅Git包服务部分。
如果你的内部包已经构建,它们可以添加为Local包:
- 创建捆绑每个包的版本:R包——包结构
请注意
如果您不熟悉构建包的捆绑版本,那么可以联系维护包的R开发人员。
- 将生成的tar文件复制到RSPM服务器:
终端
<<#创建一个本地源:美元rspm创建源——名字=prod-internal-src < <将每个本地tar包文件添加到源文件:<<# tar文件必须是命令行用户和运行帐号的rwx文件<<# RSPM(默英格兰vs伊朗让球认为rstudio-pm)$ RSPM添加——source=prod-internal-src——路径=“/道路/ / package_1.0.tar.gz”<<#创建一个存储库:创建repo——name=prod-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——url=https://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——name=prod-git——描述=“我们内部包的稳定版本”$ RSPM订阅-来源=prod-internal-src——回购=prod-git
可以使用通过HTTP或SSH url访问的Git端点来构建包:https://github.com/user/repo.git
vs。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——name=read-r-pkg——路径=/ / / ssh /关键——passphrase-path路径=/道路/ /密码/文件< <可选地,从磁盘中删除密钥:<<# rm /道路/ / ssh /关键<<#创建Git构建器创建git-builder——url=user@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包提供服务:
- Bioconductor存储库并排提供多个版本的Bioconductor,并充当Bioconductor镜像。从这些存储库中使用BiocManager包中。这是使Bioconductor包可用的最常见的方法。
- 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——name=bioconductor - 3.11描述=“Access Bioconductor 3.11包”<<#订阅Bioconductor资源库:$ RSPM认购——回购=bioconductor - 3.11——源=bioc - 3.11 < <#为Bioconductor源启动一个同步:$ RSPM sync——type=bioconductor——源=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包:
- 找到生物导体释放的最后日期。这通常是下一个生物导体释放的日期,可以找到在这里.
- 使用。找到与此日期一致的CRAN快照
凹口快照列表
命令。 - 创建一个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——name=pypi——类型=python -描述=“访问PyPI包”<<存储库:pypi - Python<< #订阅存储库到PyPI源:$ RSPM subscribe——repo=pypi——source=pypi< <库: pypi< <来源:< <——pypi (Python)启动PyPI同步:$ RSPM sync——type=pypi<<启动PyPI同步。根据之前同步了多少数据,这可能需要一段时间。操作完成后将出现在Package Manager UI中。< <年代napshots为pypi:0/34[----------------------------------------------------------------------------------------------------------------------------------]<< pypi快照中的包:14127/231734= = = = = =>-------------------------------------------------------------------------------------------------------]5 m9
提示
在启用PyPI包处理大型元数据和包下载之前,配置额外的存储。
有关RSPM的Python功能的更多信息,请参见Python文档部分。