This how-to guide covers the installation of the Fortran Package Manager (fpm) on various platforms.
Binaries for macOS, Linux, and Windows (all on x86-64) are available for download for each release of fpm, as well as the latest (bleeding edge) release which mirrors the latest commit in the main branch of fpm.
Navigate to fpm releases to see all available releases. The downloadable files are available at the bottom of each release section under Assets. Click on the appropriate link based on your OS. For example, to download a macOS fpm binary, click on the link that has macos in its name. After downloading, you will need to make your binary executable. On Linux and macOS, you can do this by typing
chmod +x fpm-0.5.0-linux-x86_64
Optionally, place the binary in a directory that is globally accessible (i.e. in the
PATH environment variable on Linux and macOS).
You can also rename the binary to just fpm for easier use.
For Windows, both a self-contained binary and a Windows Installer for fpm are available.
Links that end with
.sha256 provide the cryptographic hashes that you can use to verify if the download of your binary was successful.
To verify the integrity of the downloaded binary the checksum can be computed locally and compared with the one provided in the release
❯ openssl sha256 -r fpm-0.5.0-linux-x86_64 387782f29b19eb6fbf14dd5cef76907a4c9cb6d20726d5508a78225ccd131ca8 *fpm-0.5.0-linux-x86_64 ❯ cat fpm-0.5.0-linux-x86_64.sha256 387782f29b19eb6fbf14dd5cef76907a4c9cb6d20726d5508a78225ccd131ca8 fpm-0.5.0-linux-x86_64
If the checksums mismatch, the download was most likely incomplete and the binary non-functional. In this case, retry the download of the binary and confirm that the checksums match.
MSYS2 package manager¶
The MSYS2 project provides a package manager and makes many common Unix tools available for Windows.
To install download the
msys2-x86_64-YYYYMMDD.exe installer from the MSYS2 webpage and run it.
MSYS2 will create several new desktop shortcuts, like MSYS terminal, MinGW64 terminal and UCRT64 terminal (more information on MSYS2 terminals are available here).
The Fortran Package Manager is supported for the UCRT64, MinGW64, or MinGW32 terminal.
Open a new terminal and update your installation with
You might have to update MSYS2 and
pacman first, restart the terminal and run the above command again to update the installed packages.
If you are using the MinGW64 terminal you can install the required software with
pacman -S git mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-fpm
Both git and gfortran are not mandatory dependencies for running fpm. If you provide git and gfortran from outside they will get picked up as well.
Homebrew package manager¶
The Fortran Package Manager (fpm) is available for the homebrew package manager on MacOS via an additional tap. To install fpm via brew, include the new tap and install it using
brew tap fortran-lang/fpm brew install fpm
Binary distributions are available for MacOS 11 (Catalina) and 12 (Big Sur) for x86_64 architectures. For other platforms fpm will be built locally from source automatically.
Fpm should be available and functional after those steps.
The Fortran Package Manager (fpm) is available via macports and can be installed with
sudo port install fpm
Fpm should be available and functional after those steps.
Conda package manager¶
Fpm is available on conda-forge, to add conda-forge to your channels use:
conda config --add channels conda-forge
Fpm can be installed with:
conda create -n fpm fpm conda activate fpm
Alternatively, if you want fpm to be always available directly install into your current environment with
conda install fpm
Spack package manager¶
Fpm is available with spack in its develop version. To install fpm from spack use
spack install fpm
You can add
+openmp to enable parallelization of the target compilation in fpm.
To use fpm in your environment load it with
spack load fpm
For more details check the package information here.
Arch Linux user repository¶
The Arch Linux user repository (AUR) contains two packages for the Fortran Package Manager (fpm). With the fortran-fpm-bin installs the statically linked Linux/x86_64 binary from the release page, while the fortran-fpm package will bootstrap fpm from source.
Select one of the PKGBUILDs and retrieve it with
git clone https://aur.archlinux.org/fortran-fpm.git cd fortran-fpm
As usual, first inspect the PKGBUILD before building it. After verifying the PKGBUILD is fine, build the package with
Once the build passed pacman will ask to install the fpm package.
A port for OpenBSD is available in the default port tree. To install fpm install the devel/fpm port with
cd /usr/ports/devel/fpm make install clean
The installer provided from the fpm release can be used via WinGet to install fpm:
winget install FortranLang.fpm
Building from source¶
To build fpm from source get the latest fpm source, either by cloning the repository from GitHub with
git clone https://github.com/fortran-lang/fpm cd fpm
or by downloading a source tarball from the latest source
wget https://github.com/fortran-lang/fpm/archive/refs/heads/main.zip unzip main.zip cd fpm-main
The available install script allows to bootstrap fpm by using just a Fortran compiler, git and network access. Invoke the script to start the bootstrap build
Fpm will be installed in
Building the bootstrapper binary from the single source file version might take a few seconds, which might make the install script look like it is hanging.
The installation location can be adjusted by passing the
If you can’t run the install script, you can perform the bootstrap procedure manually, with the following three steps:
Download the single source version of fpm
Build a bootstrap binary from the single source version
mkdir -p build/bootstrap gfortran -J build/bootstrap -o build/bootstrap/fpm fpm.F90
Use the bootstrap binary to build the feature complete fpm version