为R构建Git包#
R包可以有多种格式:
- 源:包含源代码的目录和文件的集合。
- 包:一个特别创建的tar文件,包含打包的源代码。的结果
R CMD构建
. - 二进制文件:特定于操作系统和体系结构的二进制文件,包含已编译的源代码。不是可执行文件。的结果
R CMD安装
.
在某些配置中,RStudio Package M英格兰vs伊朗让球anager需要运行R,以便将包从一种状态转换为另一种状态。英格兰vs伊朗让球RStudio包管理器使用RStudio作业启动器执行此任务。
工作启动#
RStu英格兰vs伊朗让球dio作业启动器是一个服务,负责运行支持RStudio包管理器的作业。卡塔尔世界杯欧洲预选赛赛程表在安装RStudio包管理器时,会自动安装作业启动器。英格兰vs伊朗让球作业启动器的设置可以直接在RStudio包管理器配置文件中进行配置,英格兰vs伊朗让球/etc/英格兰vs伊朗让球rstudio-pm/rstudio-pm.gcfg
.看到配置附录中的章节。
英格兰vs伊朗让球RStudio包管理器只能使用它自己的作业启动器实例,并在本地运行所有任务。其他RStu英格兰vs伊朗让球dio产品可能有独立于RStudio包管理器独立管理的作业启动器实例。RStu英格兰vs伊朗让球dio包管理器的作业启动器不能被其他产品共享,RStudio包管理器也不能使用为其他产品设置的作业启动器实例。
选项可以显示与此组件相关的服务器日志消息发射器
地区。关于激活日志区域的更多信息请参见在配置附录中.
R配置#
您可以选择在RStudio Package Manager配置文件中指定R的安装:英格兰vs伊朗让球
;/etc/英格兰vs伊朗让球rstudio-pm/rstudio-pm.gcfg(服务器)RVersion=/ opt / R /你
取代/ opt / R /你
与您的R安装路径。使用R安装目录的路径,而不是二进制文件的路径(不包括/bin/R
).虽然服务器上可能安装了多个版本的R,只有一个版本的R可以由RStudio包管理器指定使用。英格兰vs伊朗让球
请注意
必须配置R,才能使作业启动器正确工作。有关更多信息,请参阅工作启动部分。
如果RVersion
字段,那么它必须是有效的,并且它必须只在配置文件中出现一次。检查服务器日志后启动和停止与R配置相关的消息的RSPM进程。
R安装#
英格兰vs伊朗让球RStudio建议在大多数情况下从预编译的二进制文件安装R。
要从预编译的二进制文件进行安装,请遵循安装R.
或者,您可以从源代码安装R,要做到这一点,请参见从源代码安装R.
Git建筑商#
英格兰vs伊朗让球RStudio包管理器定义了一个git-builder
作为一个监视Git端点的实体,无论它是远程的(例如,git@github.com:用户/ example.git
)或本地的(例如:file:///path/to/local/git/repo
),用于更改并构建R包包包。
管理员需要执行以下步骤:
- 创建一个git源代码。
- 创建一个
git-builder
指定是要监视提交到Git分支还是Git存储库中的标记。端点可以是:HTTP、SSH(见下文)或本地文件路径(见下文)。看到创建git-builder
命令获取完整的细节,例如,如何跟踪一个特定的分支。 - 方法指定的选择
创建git-builder
命令时,RStud英格兰vs伊朗让球io包管理器克隆Git端点并运行一个R作业将Git克隆转换为一个包包包。任何订阅源代码的存储库都可以使用这个包包。 - 英格兰vs伊朗让球RStudio Package Manager轮询Git端点以监视新提交或新标记(基于使用
创建git-builder
命令)。如果有更新可用,RStudio Package Man英格兰vs伊朗让球ager会自动提取新的更改并启动一个R作业。任务R从更新的Git克隆创建一个包包包,并更新Git源代码中可用的包。以前的版本被存档。 - 用户通过从存储库安装包
install.packages
不devtools
.
看到开始节中给出一个具体的例子。
选项可以显示与此组件相关的服务器日志消息git
地区。关于激活日志区域的更多信息请参见在配置附录中.
使用Git凭据访问受限的Git端点#
如果Git构建器需要身份验证才能读取存储库,RStudio Package Manager可以使用SSH密钥或HTTPS凭英格兰vs伊朗让球证对端点进行身份验证。
导入SSH密钥#
首先创建一个SSH密钥并将SSH密钥访问权授予Git端点。尽管RStudio英格兰vs伊朗让球 Package Manager允许使用不带密码短语的SSH密钥,但仍然建议使用带密码短语的强SSH密钥。授予访问权限的具体步骤取决于您的Git提供程序。
获得SSH密钥的路径后,使用进口ssh密钥
命令命名并安全地存储SSH密钥,以供RStudio包管理器稍后使用。英格兰vs伊朗让球如果需要,现在可以从文件系统中删除SSH密钥文件,因为它作为加密文本加载到RSPM的数据库中。可以导入多个键,但它们必须有唯一的名称来引用。这是——名字
参数传递给进口ssh密钥
命令,而不是密钥的文件名。
因为使用密钥的密码需要将密码写入磁盘上的文件,所以在磁盘上的密码存在泄露的风险。方法对密码进行加密以降低此风险加密
命令,然后将其写入文件。RSPM将把文件中的密码理解为明文或加密文本,并根据需要对密码进行解密,以解锁您的SSH密钥。
要在新的Git构建器中使用新导入的SSH密钥,请使用——凭证
旗帜在创建git-builder
命令。
导入HTTPS证书#
HTTPS凭据由用户名和密码组成。在使用双因素身份验证的应用程序中,您通常需要一个个人访问令牌(PAT)作为密码。要导入HTTPS凭据,请使用RSPM导入http -credential
命令。
注意,使用此命令需要您在命令行上输入密码/PAT,这可能会存储在您的命令历史中。方法对密码进行加密,以避免这种可能的凭据泄漏rspm加密
命令,并将此加密字符串传递给RSPM导入http -credential
命令。
要在新的Git构建器中使用新导入的凭据,请使用——凭证
旗帜在创建git-builder
命令。
Git证书安全#
英格兰vs伊朗让球RStudio Package Manager加密并将导入的凭据存储在元数据中数据库.的任何人员(默认情况下为英格兰vs伊朗让球rstudio-pm
unix组)可以访问admin命令行
- 方法将导入的凭据与Git构建器关联
创建git-builder
命令 - 方法列出可用Git凭据的名称
git-credentials列表
命令
用户不能访问凭据的内容,也不能使用凭据进行任意操作。我们建议将导入RStudio包管理器的SSH密钥和HTTPS凭证授予仅对希望作为R包公开的端点的有限只读访问。英格兰vs伊朗让球
导入时,凭证是静止加密的。在需要身份验证的Git操作中,凭证被添加到ssh-agent或设置为环境变量,因此不会写入文件系统或写入STDIN。
更改git生成器的凭据#
证书可以通过创建一个新的证书和编辑一个现有的git-builder来旋转:
终端
RSPM import ssh-key——name= (键名]——路径= (/ /关键路径]RSPM编辑git-builder——name= (git-builder名字]——源= (git源代码]——新的凭证= (键名]
如果你想将git构建器的URL类型从https改为git,或者反过来,请确保你传递了一个与新URL类型匹配的凭据。
RSPM编辑git-builder——name= (git-builder名字]——源= (git源代码]——新url=git@github.com:人/东西——新的凭证= (SSH密钥名称]
除了手动指定的命令外,RSPM不更改凭据。因此,当更改URL而不更改凭据时,RSPM将继续使用任何先前的凭据。要删除凭据与git-生成器的关联,请使用编辑git-builder——remove-credential
命令:
RSPM编辑git-builder——name= (git-builder名字]——源= (git源代码]——remove-credential
访问本地文件系统上的Git端点#
如果Git存储库在本地可用,则可以指定一个Git构建器来监视该位置,并在对分支或标记进行更改时进行更新(基于用创建git-builder
命令)。
要做到这一点,Git。AllowFileURLs
配置选项必须首先设置为真正的
.一旦设置了该选项,就可以使用以下命令创建一个指向本地Git存储库的Git构建器:
终端
RSPM创建git-builder——source git——url文件:///path/to/local/git/repo
提交vs标签#
可以配置基于Git端点的包来监视两种类型的更改:“提交”或“标记”。简而言之,“提交”监视对指定Git分支的更改,而“标记”监视整个Git存储库中的新标记。更多细节:
- 提交- 英格兰vs伊朗让球RStudio包管理器会在分支中发现新的提交时更新包。在此模式下,RStudio包英格兰vs伊朗让球管理器自动修改包的版本,为每个版本分配唯一的版本号。版本号是根据提交时间戳创建的,并被设计为避免与包作者使用的版本方案发生冲突。例如,如果一个包的Description文件表示
1.1 - 3
,自动版本号为:1.1 3.0.0.0.1537204599
.如果作者用一个新的提交更新包,但保持Description文件中的版本不变,新的自动版本号将反映新的提交时间戳,例如:1.1 3.0.0.0.1537218677
.这个过程确保包的用户总是得到正确的行为install.packages
,更新的提交与语义上更高的版本号相关联。
方法可以覆盖上述“提交”触发器的版本行为Git。ForceDescriptionVersion
配置选项。这将强制分支中提交构建的所有包使用DESCRIPTION文件中的确切版本。
- 标签RS英格兰vs伊朗让球tudio包管理器会在发现新的Git标签时更新包。在这种模式下,RStudio英格兰vs伊朗让球包管理器保留包的描述文件中指定的版本。当使用Git标记指示包的发布时,这种模式就可以工作。注意:标签的名称必须与Description文件中的版本匹配.例如,如果包的Description文件具有
版本:5.4.2
你的标签必须是其中之一5.4.2
或v5.4.2
.如果两个标记引用同一个版本,则优先考虑更新的标记。如果新标记引用的是比先前标记更老的版本,则新标记将被构建为一个存档包。如果从Git端点删除标记,则为该标记构建的任何包都将保留。
对于前沿存储库,推荐使用提交模式,而标记模式则适合公开包的稳定版本.
一个git源可以用不同的模式支持不卡塔尔世界杯欧洲预选赛赛程表同的包。然而,给定的包在源代码中只能有一种模式。如果您想在提交和标记模式下显示相同的包,您必须创建两个git源文件。
Git目录#
默认情况下,包将从git根目录构建。如果R包存在于不同的位置,则可以使用——sub-dir
标志。
从Git管理包#
的git-builder
(如上所述)监视Git端点的更改,自动处理包更新和存档。在某些情况下,您可能希望删除包,或者完全停止构建包。
方法可以随时删除包删除
命令。
若要停止自动生成包,但保留现有包,请使用删除git-builder
命令。要恢复包构建,只需创建一个新的git-builder
使用相同的元数据。
终端
#从git中删除之前构建的包:RSPM删除——源= (来源名称]——名字= (包的名称和范围]停止自动生成包,但保留包:删除git-builder——name= (包裹名称]——源= (来源名称]
要查看当前被跟踪Git端点的信息,请使用:
终端
RSPM列出git生成器
编辑git-builders#
Git构建器有一些可以编辑的字段:凭证、url、子目录和分支(用于“提交”触发器)。git-生成器不能从SSH更改为HTTP url,反之亦然。
终端
RSPM编辑git-builder——name= (git-builder名字]——源= (git源的名字]——新url= (HTTP / SSH URL]RSPM编辑git-builder——name= (git-builder名字]——源= (git源的名字]——新的凭证= (凭据名称]RSPM编辑git-builder——name= (git-builder名字]——源= (git源的名字]——新分支= (分支机构名称]RSPM编辑git-builder——name= (git-builder名字]——源= (git源的名字]——new-sub-dir= (子目录路径]RSPM编辑git-builder——name= (git-builder名字]——源= (git源的名字]——remove-credential RSPM edit git-builder——name= (git-builder名字]——源= (git源的名字]——remove-sub-dir
将Git中的包与其他包源结合#
本地包不能手动添加到git源中,但存储库可以通过订阅多个源将来自git源的包与本地包和CRAN包一起显示出来。管理存储库的订阅时要注意,因为顺序很重要,请参见多个源部分。
轮询频率#
控件可以控制RStudio包管理器检查更新的频率英格兰vs伊朗让球Git。PollInterval
配置字段.如果在检查之间发生多次提交,RStudio包管理器将创建一个表示所有更改的单一版本。英格兰vs伊朗让球如果在检查之间创建或删除多个标记,RStudio Package Manager将单独构建每个标记,自动归档代表英格兰vs伊朗让球包的较老版本的标记。
库版本在所有源类型中都是相同的,包括git源。
跟踪更改和错误#
如果一个存储库订阅了一个git源,你可以在活动日志中查看git源的历史。Activity Log将识别包含新版本的包的每一个更改,并根据需要指示相关的Git标记或提交消息。如果在尝试克隆、轮询或捆绑包时遇到错误,活动日志将记录该尝试,并包含要运行的CLI命令的消息,以查看完整的错误日志。
您还可以使用以下RSPM CLI命令快速检查活动的Git构建器并查看日志:
终端
$ rspm list Git - Builders << Git Builders: << -[Git包名]< <来源:[源的名字]< < URL:[源url]< <触发:[Git包触发器]<<键:无
终端
$ RSPM列表git-builds——source= (源的名字]——名字= (Git包名]<< Git构建:<< -[Git包名]<<事务ID:[事务ID]<< sha: [sha]< < Tag:[标签]< <状态:[作业状态]< <时间:[时间的运行]<<只显示最新版本,为更多的构建使用——count和——page标志<<更多信息,请运行:rspm logs——transaction-id= (事务ID]
终端
$ RSPM日志——transaction-id= (事务ID]< <…<<[Git包运行日志]< <…
英格兰vs伊朗让球RStudio包管理器自动尝试从Git源构建更新三次。如果构建失败超过三次,则会忽略导致失败的更新。仍然会发现和构建新的更新。
若要重试失败的更新,或强制Git构建器重新构建最新的包版本,请使用重新运行
命令:
终端
RSPM重新运行git-builder\——名字= (包名]\——源= (源的名字]\——标签= (标记重建,只需要如果构建触发器是标记]
为了帮助调试,它可以帮助查看运行的git命令的输出以及SSH连接的输出(如果适用)。打开调试开关,请参见Debug.Log
中的配置属性配置附录.要在不重新启动服务器的情况下临时启用调试日志,请使用rspm配置
命令:
终端
RSPM配置调试日志激活git
流程管理#
看到流程管理了解在为git源代码构建R包时,RStudio英格兰vs伊朗让球包管理器如何安全地运行R进程。