Integrating Posit Connect with Posit Package Manager
Posit Package Manager is a repository management server product that makes it easy to organize and centralize R packages at your organization. Package Manager can help if your organization needs offline CRAN access, package access restrictions, internal package sharing, or other special package management needs. To learn more, visit the Package Manager Product Page and speak to your dedicated Posit Customer Success contact.
Overriding CRAN with Package Manager
This section explains how to use Posit Package Manager repositories rather than the CRAN mirror or other R package repository URLs referenced by R content.
First obtain the repository link from Package Manager:
Visit the Posit Package Manager in your browser.
Select your repository from the Repository drop-down menu in the middle of the screen.
Click SETUP.
Select Linux as the Operating System.
Use the Linux Distribution section to select if you want source packages only, or binary packages. To deliver compatible binary packages, select your Linux distribution from the drop-down menu.
Under Snapshots, select whether you want the most recent packages available, or if you want to freeze package versions from a specific date.
ImportantFreezing your repository to a date can lead to users attempting to deploy content containing package versions that did not exist at that date. If that happens, their content will fail to build because it cannot find necessary packages.
Select Posit Connect under Environment.
Under Repository URL, copy the URL.
Next, in the
/etc/rstudio-connect/rstudio-connect.gcfg
configuration file, add the following setting, replacing"<the URL you copied>"
with the URL that you copied in the previous step:[RPackageRepository "CRAN"] URL = "<the URL you copied>"
For additional information, please see the r-package-repositories
section and the RPackageRepository section of the Appendix.
Posit Package Manager URL rewriting
Posit Package Manager can serve R packages as source or precompiled binaries. Precompiled binaries install much faster, but are only compatible with the Linux distribution for which they were compiled. For more detail, see Posit Package Manager documentation on Binary Packages and Using Linux Binary Packages.
Package Manager URL rewriting only applies to Posit Package Manager URLs. Other R package repositories (e.g. vanilla CRAN mirrors, Bioconductor, Artifactory, or filesystem repositories) are not affected.
The type of package served by Posit Package Manager is determined by the URL. For instance, https://packagemanager.posit.co/cran/latest
serves source packages, while https://packagemanager.posit.co/cran/__linux__/jammy/latest
serves binary packages for Ubuntu 22.04.
Use the setting R.PositPackageManagerURLRewriting
to control how Connect downloads packages from a Posit Package Manager instance. This setting affects both repositories configured on Connect using RPackageRepository
, and arbitrary repository URLs in published content.
The R.PositPackageManagerURLRewriting
setting takes one of four values:
auto
(default): Incompatible Posit Package Manager binary URLs are rewritten to use compatible binaries, if they are served by the Package Manager instance. Otherwise, they are rewritten to use source packages. Source package URLs, compatible binary URLs, and other repository URLs are unmodified.force-source
: All Posit Package Manager URLs are rewritten to use source packages.force-binary
: All Posit Package Manager URLs are rewritten to use binary packages, assuming they are served by the Package Manager instance. Otherwise, they are rewritten to use source packages.none
: Disables all modification of Posit Package Manager URLs. Repository URLs from theRPackageRepository.URL
Connect configuration setting and from deployed content are used as-is. For example, usenone
if the configured URLs are correct but the host Linux distribution is not detected as supported by Posit Package Manager.
Example
With the default behavior (R.PositPackageManagerURLRewriting = auto
), Posit Connect rewrites incompatible Posit Package Manager binary URLs and leaves all other URLs unmodified. For example, on Ubuntu 22.04 (Jammy):
https://packagemanager.posit.co/cran/latest
is unmodified, because it installs source packages.https://packagemanager.posit.co/cran/__linux__/jammy/latest
is unmodified, because it installs compatible binary packages.https://packagemanager.posit.co/cran/__linux__/focal/latest
is rewritten tohttps://packagemanager.posit.co/cran/__linux__/jammy/latest
, because it installs binary packages compiled for a different version of Ubuntu.
To rewrite all URLs to install source packages, use:
; /etc/rstudio-connect/rstudio-connect.gcfg
[R]
PositPackageManagerURLRewriting = force-source
To rewrite all URLs to install compatible binaries:
; /etc/rstudio-connect/rstudio-connect.gcfg
[R]
PositPackageManagerURLRewriting = force-binary