跳转到内容

为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包包包。

管理员需要执行以下步骤:

  1. 创建一个git源代码。
  2. 创建一个git-builder指定是要监视提交到Git分支还是Git存储库中的标记。端点可以是:HTTP、SSH(见下文)或本地文件路径(见下文)。看到创建git-builder命令获取完整的细节,例如,如何跟踪一个特定的分支。
  3. 方法指定的选择创建git-builder命令时,RStud英格兰vs伊朗让球io包管理器克隆Git端点并运行一个R作业将Git克隆转换为一个包包包。任何订阅源代码的存储库都可以使用这个包包。
  4. 英格兰vs伊朗让球RStudio Package Manager轮询Git端点以监视新提交或新标记(基于使用创建git-builder命令)。如果有更新可用,RStudio Package Man英格兰vs伊朗让球ager会自动提取新的更改并启动一个R作业。任务R从更新的Git克隆创建一个包包包,并更新Git源代码中可用的包。以前的版本被存档。
  5. 用户通过从存储库安装包install.packagesdevtools

看到开始节中给出一个具体的例子。

选项可以显示与此组件相关的服务器日志消息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-pmunix组)可以访问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源代码——新urlgit@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存储库中的新标记。更多细节:

  1. 提交- 英格兰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文件中的确切版本。

  1. 标签RS英格兰vs伊朗让球tudio包管理器会在发现新的Git标签时更新包。在这种模式下,RStudio英格兰vs伊朗让球包管理器保留包的描述文件中指定的版本。当使用Git标记指示包的发布时,这种模式就可以工作。注意:标签的名称必须与Description文件中的版本匹配.例如,如果包的Description文件具有版本:5.4.2你的标签必须是其中之一5.4.2v5.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 URLRSPM编辑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进程。