Building a Complete Data Science Environment
By the end of this lesson, you will be able to:
- Explain why many R packages need system dependencies installed on the Connect server
- Describe why Posit recommends installing R, Python, and Quarto outside the Linux distribution’s package manager
- Describe how multiple versions of R and Python can coexist on a single Connect server
- Recognize the configuration changes Connect needs to use these runtimes
Introduction
After the first lab, Connect runs, is licensed, and can render R content. That is a functional installation, but not yet the environment your data science teams need. A production Connect server supports the full variety of content teams publish: reports and applications written in R, Python, and Quarto, and R packages that rely on system libraries.
This lesson explains the pieces of that environment (system dependencies, Python, and Quarto) and why Posit recommends installing them the way the accompanying lab will. The lab walks you through installing each component and registering it with Connect.
- Reading time: 10 minutes
- Documentation reading time: 20-30 minutes
- Hands-on exercise time: 15-30 minutes
System Dependencies for R Packages
Many R packages rely on system libraries to compile and run. Without these dependencies on the Connect server, users will not be able to install the R packages their content needs when they deploy.
The Admin Guide lists the recommended set of system dependencies per distribution. In the lab you will install the set for Ubuntu 24.04. Depending on the packages your developers rely on, you may have to install additional dependencies. The package pages on the Public Posit Package Repository document the system dependencies required by each package, and this information is useful even if you don’t use Posit Package Manager as your repository.
Posit also provides “Portable R Binary Packages”, which bundle the system dependencies required by some R packages directly with the package itself, so you don’t have to install those dependencies by hand. The R.PositPackageManagerURLRewriting = "force-portable" setting in Connect’s configuration file ensures that deployments use these portable packages when available.
Multiple Versions, Side by Side
Connect allows different content to depend on different versions of R, Python, and Quarto. These deployments coexist within your Connect instance without conflict. This is why Posit does not recommend installing these runtimes with your Linux distribution’s package manager: distribution packages give you a single system version that may not match what your users need, and may be updated to incompatible versions during routine system maintenance.
Instead, use the installers Posit provides for R and Quarto, and install Python with uv, so that multiple versions can live side by side on the same server.
Installing a runtime is only half of the work. Connect does not automatically pick up new versions: after installing R, Python, or Quarto, you must edit Connect’s configuration file to point at the new executables and restart the service. The logs will then confirm that Connect has detected the new versions.
Python
Posit Connect allows different deployed content to depend on different versions of Python. Review the Python Overview section of the Admin Guide before the lab, and use the Python installation guide to install the versions your teams need with uv.
Quarto
Quarto documents are one of the most common content types published to Connect. Review the Quarto Overview section of the Admin Guide, and use the Quarto Installation Guide to install the versions you need. As with R and Python, each installed version must be registered in Connect’s configuration file.
Connect (since 2026.06) also supports NodeJS as a runtime. Administering it is similar to R or Python: you can install multiple versions and configure Connect to use them. See the NodeJS section of the Admin Guide. This runtime is not covered in the lab.
The environment you build in this lab is the one your data scientists will rely on, so it is worth planning it deliberately:
- Ask your teams which versions they need, for R, Python, and Quarto, and plan for several versions to coexist.
- Consider your infrastructure: server or VM size, on-premises versus cloud, and the Linux operating system all constrain what you can install.
- Check security approvals early: the versions and installers you use may need approval in your organization before you can put them on a production server.
In the accompanying lab, you will install the system dependencies required by R packages, then install Python and Quarto, and register all of these runtimes with Connect.