System Dependencies

A dependency is a broad software engineering term used to refer when software relies on other software in order to be functional. For R package dependencies, the installation of the synapser package will take care of installing other R packages that synapser depends on, using dependencies specified in the DESCRIPTION file. However, lower level system dependencies are not automatically installed.

Most Windows and Mac machines have the required system dependencies. Linux machines, including most Amazon Web Services EC2 machines, will need to be configured before installing synapser.

Required System Dependencies

  • libssl-dev
  • libcurl-dev
  • libffi-dev
  • zlib-dev

Python Version Requirements

Important: In addition to system dependencies, synapser requires specific Python version compatibility:

  • Supported Python versions: 3.8 to 3.11
  • Recommended version: Python 3.10 for optimal compatibility
  • Unsupported: Python 3.12 or later (will cause installation/runtime errors)

This Python version restriction exists because synapser uses reticulate 1.28 to interface with the Synapse Python Client. Python 3.12+ introduces changes that are incompatible with this version of reticulate.

If you need to manage multiple Python versions, consider using pyenv (Linux/macOS) or pyenv-win (Windows).

Ubuntu Installation

To install these system dependencies on Ubuntu machines:

apt-get update -y
apt-get install -y dpkg-dev zlib1g-dev libssl-dev libffi-dev
apt-get install -y curl libcurl4-openssl-dev

Another option is to use the provided Dockerfile. For more information on installing synapser with Docker, please see our Docker vignettes.

Redhat Installation

To install these system dependencies on Redhat machines:

yum update -y
yum install -y openssl-devel curl-devel libffi-devel zlib-devel
yum install -y R