Quick installation¶
The fastest way to get a working PROTEUS installation is the unified installer script. It handles Julia, SOCRATES, AGNI, all Python submodules, environment variables, and reference data downloads in a single command.
Prerequisites
- macOS (Intel or Apple Silicon) or Linux
- ~20 GB disk space (conda, Julia, reference data, submodules)
- Standard command-line tools:
curl,wget - Git with SSH key configured (GitHub SSH setup)
- Internet connection for initial setup and data downloads
- Allow ~60 minutes for a full installation including all submodules
PROTEUS runs on macOS and Linux. Windows users should install via WSL2. Depending on your system configuration, some steps may differ. If you run into problems, check the Troubleshooting page or contact the developers.
macOS users
macOS Catalina (10.15) and later uses zsh as the default shell. Replace .bashrc with .zshrc throughout these instructions if you are using the default shell.
1. System packages¶
Install the required system libraries for your platform. See the Local machine guide for detailed instructions.
xcode-select --install
brew install gcc netcdf netcdf-fortran wget open-mpi cmake
sudo apt install gfortran libnetcdff-dev build-essential curl git cmake unzip
sudo dnf install gcc-gfortran netcdf-fortran-devel make curl git cmake unzip
Compute clusters: use the dedicated guides instead (Kapteyn, Habrok, Snellius, Cambridge IoA).
2. Clone PROTEUS and set up Python environment¶
Python 3.12 is required, and is installed via miniconda or miniforge. If you do not have miniconda or miniforge installed yet:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh
rm ~/miniconda3/miniconda.sh
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh
rm ~/miniconda3/miniconda.sh
Install miniconda/miniforge in your personal directory
Installing miniconda/miniforge in your personal directory gives you full control over your environment and is recommended even on clusters (see the cluster guides: Kapteyn, Habrok, Snellius, Cambridge IoA).
Then clone PROTEUS and create a conda environment with Python 3.12:
git clone git@github.com:FormingWorlds/PROTEUS.git
cd PROTEUS
conda create -n proteus python=3.12
conda activate proteus
3. Run the installer¶
bash install.sh
Remove old Julia installations
Issues might arise if you already have Julia installed via your system manager (and not the official installer). In that case, please uninstall Julia before running the installer and remove old Julia entries from your PATH.
The installer runs through the following phases automatically:
- Pre-flight checks (OS, disk space, Python version, system dependencies)
- Julia installation and version pinning (1.12)
- Environment variables (
FWL_DATA,PYTHON_JULIAPKG_EXE) - SOCRATES compilation and
RAD_DIRsetup - AGNI and FastChem setup (Julia atmosphere model + equilibrium chemistry)
- Python packages (editable installs of all submodules + PROTEUS itself)
- Reference data downloads
- Verification via
proteus doctor
Each phase is idempotent: if the installer fails partway through, fix the
reported issue and re-run bash install.sh. It will skip already-completed
phases.
Installer options:
| Flag | Effect |
|---|---|
--all-data |
Download all reference data (~10-20 GB) instead of the essential set (~2 GB) |
--no-data |
Skip data downloads entirely (download later with proteus get) |
-i / --interactive |
Interactive mode (prompt for choices; default is non-interactive) |
CLI alternative: proteus install-all
If PROTEUS is already importable in your environment, proteus install-all
performs the same setup from the CLI: it installs PROTEUS and the required
submodules (SOCRATES, AGNI), downloads reference data, checks for sufficient
disk space, creates FWL_DATA if needed, and sets the environment variables.
- Pass
--export-envto write the environment variables to your shell rc file. - To refresh an existing installation later, use
proteus update-all(see Diagnose and update).
Both commands operate on the PROTEUS source tree, which they locate from the installed package (editable installs) or, for a plain wheel install, from the current directory when it is a PROTEUS clone; with neither available they exit with an error.
4. Verify and run¶
After the installer finishes, source your shell configuration and run the quick-start test:
source ~/.zshrc # or ~/.bashrc, depending on your shell
conda activate proteus
proteus start --offline -c input/dummy.toml
If this produces output in output/dummy/, your installation is working.
See the Quick start tutorial for
a guided walkthrough.
SPIDER (optional)
The installer does not include SPIDER or PETSc. If you need SPIDER as an alternative interior energetics solver, install it separately after the main installation:
bash tools/get_petsc.sh
bash tools/get_spider.sh
See SPIDER installation for details.