跳转到内容

存储库和来源

图TD A(cran -type Repository)—> |来源| B(cran) B—> L(A3) B—> |包|M(shiny) B—> N(covr)

存储库是组织和分发包的主要工具。这些是客户端(R、BiocManager、pip等)用于查找和安装包的数据视图。有关包和存储库的更多信息,请参阅包的生态系统部分。

在RS英格兰vs伊朗让球tudio包管理器中,存储库包括一个或多个源。源是来自一个地方的包文件的集合。例如,CRAN和PyPI是源代码可以从中提取文件的地方。

本章的文档概述了存储库和源代码的类型和结构。

存储库类型

RSPM支卡塔尔世界杯欧洲预选赛赛程表持三种类型的存储库:

  • R-一个类似cran的R包存储库。这是默认的存储库类型。
  • Bioconductor- Bioconductor R包的存储库,支持由卡塔尔世界杯欧洲预选赛赛程表BiocManager
  • Python—提供PEP 503指定的简单存储库API的存储库。皮普和其他绘画工具Python包索引(PyPI)使用此接口。

存储库类型可能只包含特定类型的源。例如,R存储库不能包含PyPI源。

请注意

存储库和源代码可以具有相同的名称。通常有一个名为“cran”的回购和一个名为“cran”的预定义源。如果这让您感到困惑,请确保为您的存储库起名,而不是您打算订阅的源。

库结构

在最终用户看来,存储库只是从磁盘提供的一组文件。英格兰vs伊朗让球RStudio包管理器没有在磁盘上创建存储库.相反,RStudi英格兰vs伊朗让球o包管理器维护每个源包和二进制包的单一副本,并使用数据库和专门的web服务器来处理来自R和Python的HTTP请求。尽管一个存储库可能包含许多源,但它在客户机看来是一个包的集合。中的一些可以由RStudio包管理器提供服务的示例请求英格兰vs伊朗让球附录

最重要的是,这些请求类型提供了客户端软件期望安装包的接口。一个CRAN-like库意味着用户可以使用常规的R功能访问和安装包:install.packagesavailable.packagesrenv:安装,devtools:安装.一个Bioconductor存储库允许使用BiocManager:安装.一个Python存储库允许为PyPI提供的PEP 503接口使用pip、pipenv、poem或其他客户机。

库版本

存储库版本控制提供了一种在一个存储库中针对每个源的特定快照点引用多个源的方法。这是可再现性的一个有用特性:您可以获得过去某个日期可用的包的视图,并确保您拥有与运行特定分析时使用的相同的包。软件更新可能会改变接口或其他行为,因此控制环境对于保持代码正常工作至关重要。版本控制可用于除Bioconductor以外的所有存储库类型,因为Bioconductor包括自己的版本控制方案。

请注意

重申一下,为了再现性,我们建议将R配置为使用冻结到特定日期的存储库URL。

对于支持它的存储库,web UI提供了一个简卡塔尔世界杯欧洲预选赛赛程表单的界面来选择要冻结到的特定日期。这个UI的指南在入门部分

来源

英格兰vs伊朗让球RStudio包管理器存储库包含一个或多个来源.源是来自单一位置的文件集合(例如CRAN或PyPI)。英格兰vs伊朗让球RStudio Package Manager跟踪对源文件的每次更改,并将每组更改的文件分组为快照。这些快照一起创建了每个源的完整版本历史。目前有七种来源:

  • 凹口—系统自动创建单个cran源。该源代码包含来自RStudio的CRAN服务的元数据和包。英格兰vs伊朗让球该源可以直接在存储库中使用,使用户可以访问所有CRAN包,也可以由策划的CRAN源间接使用。
  • pypi—单个PyPI源自动创建。该源代码包含来自RStudio的PyPI服务的元数据和包。英格兰vs伊朗让球源代码可以直接在Python存储库中使用,使用户可以访问所有PyPI包。
  • bioconductor-生物导体源将一个或多个内部源(如“bioc”、“data/annotation”等)组合成一个“元源”,以表示给定的生物导体版本。这些元源的行为类似于凹口来源。看到Bioconductor源部分以获取更多信息。
  • curated-cran-策划的CRAN源公开一组经过批准的CRAN包。管理员可以向集合中添加包并更新集合。看到策划的CRAN来源部分以获取更多信息。
  • cran-snapshot—固定在特定CRAN快照上的CRAN源。管理员可以定期更新cran-snapshot源所固定的快照。看到CRAN快照源部分以获取更多信息。
  • 当地的-使用本地源作为一种机制来分发本地开发的包或RStudio包管理器中没有本地支持的其他包。英格兰vs伊朗让球卡塔尔世界杯欧洲预选赛赛程表管理员通过指定包的tar文件路径将包添加到本地源。
  • git- git源代码允许RStudio包管理器自英格兰vs伊朗让球动将git中的包提供给R用户install.packages(不需要devtools).Git源代码既适用于内部包,也适用于外部站点,如GitHub。包可以在每次提交时自动更新,或者在推送一个新的Git标记时自动更新。

请注意

虽然CRAN和PyPI源是自动创建的,但是在将任何元数据或包下载到RStudio包管理器之前,管理员必须使用CLI。英格兰vs伊朗让球看到CLI部分了解通过RStudio包管理器提供CRAN的更多信息。英格兰vs伊朗让球

快照标识符

RSPM有两种方法指定与存储库关联的快照:

  • 事务ID:用于导入快照信息动作的内部数字标识。所有源共享同一个表,因此事务id不会在源之间重复。
  • 日期别名:YYYY-MM-DD格式的日期,用于获取指定日期最晚发生的快照

所有源类型都支持使用事务id指定快卡塔尔世界杯欧洲预选赛赛程表照,但并非所有源都支持日期别名。到目前为止,CRAN和PyPI源是目前唯一支持日期别名的源。卡塔尔世界杯欧洲预选赛赛程表

其他源类型目前不支持日期别名,因为很难使日期信息跨多个RSPM安装相关。卡塔尔世界杯欧洲预选赛赛程表例如,与策划的CRAN和CRAN快照源相关联的日期就是使用rspm update命令创建或更新源的日期。对于Git源代码,日期是Git包构建和更新的时间,而不是构建提交或发布的日期。对于本地源,这将是添加、更新或删除包的日期。所有这些日期/时间都高度依赖于每个本地安装。

在考虑引用内容的可重复性时,这些标识符非常重要。在两个不同的RSPM安装(例如分期和生产)中,事务ID不太可能意味着相同的东西。日期别名通常是健壮的,并且有助于跨不同RSPM安装处理快照引用。日期别名是可能的默认行为,但您也可以选择冻结为事务id。详情请参阅用户界面概述更多信息。

多源存储库

一个存储库可以有多个源。如果希望从单个存储库同时提供本地包和CRAN包,可以创建订阅多个源的单个存储库。例如:

  • 所有(存储库)
  • 内部(本地来源)
  • cran (cran来源)

上面的“all”存储库允许用户访问本地和CRAN包,并且可以访问它的包列表,例如,在https://packagemanager.英格兰vs伊朗让球rstudio.com/all/latest/src/contrib/PACKAGES.存储库订阅源,这意味着对源的更改将反映在存储库中。例如,如果管理员将新包添加到内部源,用户将自动能够通过所有存储库。

请注意

回购中的源类型必须是兼容的。例如,您可以在一个cran类型的存储库中组合cran类型的源,例如cran、local和git源,但您不能在python类型的存储库中包含这些源。

源之间的包冲突

如果一个存储库有多个源,并且两个源中都存在同名的包,RStudio package Manager将消除重复,并给出优先级英格兰vs伊朗让球按照订阅源的顺序.在上面的示例存储库中,如果一个名为“plumber”的包同时存在于“cran”和“内部”源中,则将提供并列出来自“内部”源的“plumber”包,因为它是存储库的第一个源。当源发生变化时,会发生相同的冲突解决。例如,在上面的示例中,即使向CRAN添加了与内部包同名的新包,也将继续服务内部包。在更新期间也要维护优先级。在上面的例子中,即使更新了管道工的CRAN版本,也将继续提供管道工的内部版本。方法可以重新安排存储库中源的顺序重新排序命令。

什么是RStud英格兰vs伊朗让球io的打包服务?

英格兰vs伊朗让球RStudio包管理器不直接从CRAN、Bioconductor或PyPI下载包。相反,RStudi英格兰vs伊朗让球o维护一个精心策划的S3桶,其中包含关于CRAN、Bioconductor和PyPI的元数据,以及包tar文件。元数据用于跟踪每天的变化。

看到气隙RStudio包管英格兰vs伊朗让球理器部分,如果您的环境没有访问RStudio包服务的权限英格兰vs伊朗让球

在同步过程中,元数据被下载到RStudio Package Manager中。英格兰vs伊朗让球将元数据与RStudio Package Manager数据库进行比较,以英格兰vs伊朗让球确定需要应用哪些更改。然后根据需要将包压缩包下载到缓存中。

看到包装安全部分,详细介绍RStudio包服务的安全措施。英格兰vs伊朗让球

发布快照到RStudio包服务英格兰vs伊朗让球

RSPM团队在每个工作日评估CRAN、Bioconductor和PyPI,并在更新可用时发布新的快照。然后,任何RSPM安装都会根据它们的配置同步这些快照日程安排.例如,假设一个CRAN包在星期六更新。我们将在周一的某个时间发布一个新的快照到RStudio包服务,通常是周一下午英格兰vs伊朗让球(大约美国中央时间)。然后,用户的默认CRAN同步将在周二UTC上午12:00接收更改。偶尔会有非常重要的更新,我们会生成一个额外的快照以使更新更快可用。每个快照的时间根据更改的数量和涉及的依赖关系的数量而变化。

为了确保RStudio英格兰vs伊朗让球 Package Manager能够尽快同步新的快照,请考虑设置同步计划每天不止一次

为什么CRAN的最新包版本还没有可用?

我们目前评估CRAN, Bioconductor和PyPI每个工作日的更新情况。但如有更改,恕不另行通知。大型更新、外部存储库错误或不一致以及其他不可预期的情况都可能导致延迟。

包获取

英格兰vs伊朗让球RStudio包管理器在最终用户请求包时按需获取包。包管理器仍将在同步计划上下载CRAN、Bioconductor和PyPI元数据,以保持RStudio包管理器数据库的更新。英格兰vs伊朗让球数据库作为包可用性的真实来源。按需获取的好处是在网络带宽和磁盘空间方面占用的空间更小。

包缓存

英格兰vs伊朗让球RStudio包管理器只下载一个包的每个版本一次,并总是检查本地缓存,以查看所需的tar文件是否已经可用。

同步RStudio包服务英格兰vs伊朗让球

方法根据调度集同步CRAN、Bioconductor和PyPI源SyncScheduleRStudio包管理器配置文件中的属英格兰vs伊朗让球性。这些属性接受字符串crontab格式请参阅下面相应的附录部分。

默认情况下,配置文件包含crontab,它将导致RStudio包管理器每天同步一次(在服务器时区的清晨),英格兰vs伊朗让球符合下列条件之一的:

  • 凹口
    • 的任何存储库都订阅凹口源。
    • 任何回购都使用“策划-克莱恩”源。
    • 已运行手动同步同步- type =凹口命令。
  • Bioconductor
    • 任何存储库都订阅Bioconductor源代码。
    • 已创建Bioconductor回购。
  • PyPI
    • 的任何存储库都订阅pypi源。
    • 已运行手动同步——类型= pypi同步命令。

同步时间表将如果不满足上述条件,则应用。如果您只想手动同步,将配置文件更改为空值SyncSchedule

, / et英格兰vs伊朗让球c / rstudio-pm / rstudio-pm.gcfg(凹口)SyncSchedule""(Bioconductor)SyncSchedule""(PyPI)SyncSchedule""

请注意

有关设置PyPI时间表的更多信息,请参见PyPI时间表部分。

SyncSchedule属性不一定确定存储库何时将更新的包提供给用户。例如,如果存储库直接订阅凹口源,用户将根据同步计划看到更新。相反,如果存储库订阅了一个经过策划的CRAN源,管理员必须显式更新源,以便更新可用。

此外,更新存储库不会自动将更新的包推送到R客户机。存储库指定可用的包是什么,但是R用户控制何时以及如何更新项目使用的包。

参见有关管理变更控制更多信息。

英格兰vs伊朗让球RStudio包管理器还会跟踪包的旧版本。旧版本的包可以在存储库的存档中获得,并在RStudio包管理器web UI中列出。英格兰vs伊朗让球这允许用户在必要时回滚更新或安装以前存在的包。

请注意

源快照仅根据服务器的正常运行时间和配置进行检索SyncSchedule,这可能导致新快照可用和服务器下载快照之间的延迟。如果您绝对需要尽快获得最新的快照,我们建议增加SyncSchedule每隔几小时。例如crontab0 */4 * * *每四小时一趟。

来源类型详细信息

CRAN源

此内容已移至专用源细节页面。

Bioconductor来源

此内容已移至专用源细节页面。

PyPI源

此内容已移至专用源细节页面。

策划的CRAN来源

此内容已移至专用源细节页面。

CRAN快照来源

此内容已移至专用源细节页面。

Git来源

这个内容已经移动到为R构建Git包页面。

当地消息来源

该内容可在当地消息来源