Requirements

A list of required software to start contributing to OpenProblems

To start contributing to OpenProblems, you need to have the following software installed:

The following sections provide instructions on how to install each of these tools. If you already have all of these tools installed, feel free to skip this boring page and go to the next page on “Getting started”.

Step 1: install Bash

Bash is already included in most Debian- and Ubuntu-based distributions. However, if for some reason it’s not installed, open a terminal and run the following commands:

sudo apt-get update
sudo apt-get install bash

Bash is already included in most RHEL- and Fedora-based distributions. However, if for some reason it’s not installed, open a terminal and run the following commands:

sudo yum install bash

Bash is already included in most Arch-based distributions. However, if for some reason it’s not installed, open a terminal and run the following commands:

sudo pacman -S bash

Bash is already included in macOS.

You will need to install Ubuntu using Windows Subsystem for Linux (WSL).

Open PowerShell or Windows Command Prompt in administrator mode by right-clicking and selecting “Run as administrator”. Enter the following command to enable the features necessary to run WSL and install the Ubuntu distribution of Linux.

wsl --install

After rebooting the system, open Ubuntu by visiting the Windows Start menu or by entering the ubuntu command in PowerShell or Windows Command Prompt. Since Bash is already included in Ubuntu, no further actions are needed.

Content adapted from the WSL installation instructions

Verify that you have Bash version 3.2 or higher.

bash --version
Output
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Step 2: install Java

You will need Oracle Java >=11 or OpenJDK >=11 to be installed.

Run the following commands:

sudo apt-get update
sudo apt-get install openjdk-11-jdk

Run the following command:

sudo yum install java-11-openjdk-devel

Run the following command:

sudo pacman -S jdk11-openjdk

If haven’t done so already, first install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Next, install Java 11 by running:

brew install openjdk@11

Open Ubuntu in WSL and run the following commands:

sudo apt-get update
sudo apt-get install openjdk-11-jdk

Verify that you have Java version 11 or higher.

java -version
Output
openjdk 11.0.23 2024-04-16
OpenJDK Runtime Environment Temurin-11.0.23+9 (build 11.0.23+9)
OpenJDK 64-Bit Server VM Temurin-11.0.23+9 (build 11.0.23+9, mixed mode)

Step 3: install Docker

Update package index by running:

sudo apt update

Install Docker by running:

sudo apt install docker.io

Enable the Docker service automatically at boot by running:

sudo systemctl enable docker

Add the current user to the Docker group by running:

sudo usermod -aG docker $USER

On RHEL, run the following commands:

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/rhel/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

On Fedora, run the following commands:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Enable the Docker service automatically at boot by running:

sudo systemctl enable docker

Add the current user to the Docker group by running:

sudo usermod -aG docker $USER

Install Docker by running:

sudo pacman -S docker

Enable the Docker service automatically at boot by running:

sudo systemctl enable docker

Add the current user to the Docker group by running:

sudo usermod -aG docker $USER

Download and install Docker Desktop for Mac and download Docker Desktop for Mac.

Open Ubuntu in WSL and follow the following instructions.

Update package index by running:

sudo apt update

Install Docker by running:

sudo apt install docker.io

Enable the Docker service automatically at boot by running:

sudo systemctl enable docker

Add the current user to the Docker group by running:

sudo usermod -aG docker $USER

Verify that Docker is working by running:

docker run hello-world
Output
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pulling fs layer
c1ec31eb5944: Verifying Checksum
c1ec31eb5944: Download complete
c1ec31eb5944: Pull complete
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Step 4: install Viash

Install Viash by running:

mkdir -p "$HOME/.local/bin"

curl -fsSL get.viash.io | bash -s -- --bin "$HOME/.local/bin"

Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.

Install Viash by running:

mkdir -p "$HOME/.local/bin"

curl -fsSL get.viash.io | bash -s -- --bin "$HOME/.local/bin"

Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.

Install Viash by running:

mkdir -p "$HOME/.local/bin"

curl -fsSL get.viash.io | bash -s -- --bin "$HOME/.local/bin"

Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.

Install Viash by running:

mkdir -p "$HOME/.local/bin"

curl -fsSL get.viash.io | bash -s -- --bin "$HOME/.local/bin"

Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.

Install Viash in Ubuntu by running:

mkdir -p "$HOME/.local/bin"

curl -fsSL get.viash.io | bash -s -- --bin "$HOME/.local/bin"

Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.

Verify that you have Viash version 0.6.7 or higher.

viash -v
Output
viash 0.8.6 (c) 2020 Data Intuitive

Step 5: install Nextflow

Install Nextflow by running:

curl -s https://get.nextflow.io | bash
mv nextflow "$HOME/.local/bin"

Install Nextflow by running:

curl -s https://get.nextflow.io | bash
mv nextflow "$HOME/.local/bin"

Install Nextflow by running:

curl -s https://get.nextflow.io | bash
mv nextflow "$HOME/.local/bin"

Install Nextflow by running:

curl -s https://get.nextflow.io | bash
mv nextflow "$HOME/.local/bin"

Install Nextflow by running:

curl -s https://get.nextflow.io | bash
mv nextflow "$HOME/.local/bin"

Verify that Nextflow and Docker are working by running:

nextflow run hello -with-docker
N E X T F L O W  ~  version 22.10.4
Launching `https://github.com/nextflow-io/hello` [compassionate_keller] DSL2 - revision: 4eab81bd42 [master]
executor >  local (4)
[d5/78e7a6] process > sayHello (2) [100%] 4 of 4 ✔
Bonjour world!
Hello world!
Hola world!
Ciao world!

Optional: install VS Code

It is recommended to install and use VS Code as this will help with the development of components due to the use of extensions and YAML schemas.

VS code can be downloaded from this page.

There are installers available for all major operating systems, so simply download and install the version for your system.