GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2022 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.
Requirements
To start contributing to OpenProblems, you need to have the following software installed:
- Bash (>= 3.2)
- Java Development Kit (>= 11)
- Docker
- Viash (>= 0.9.0)
- Nextflow (>= 21.04)
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 respective page on what you want to do either Create component or Create a new task.
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 bashBash 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 bashBash 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 bashBash 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 --installAfter 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 --versionOutput
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-jdkRun the following command:
sudo yum install java-11-openjdk-develRun the following command:
sudo pacman -S jdk11-openjdkIf 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@11Open Ubuntu in WSL and run the following commands:
sudo apt-get update
sudo apt-get install openjdk-11-jdkVerify that you have Java version 11 or higher.
java -versionOutput
openjdk 17.0.14 2025-01-21
OpenJDK Runtime Environment Temurin-17.0.14+7 (build 17.0.14+7)
OpenJDK 64-Bit Server VM Temurin-17.0.14+7 (build 17.0.14+7, mixed mode, sharing)
Step 3: install Docker
Update package index by running:
sudo apt updateInstall Docker by running:
sudo apt install docker.ioEnable the Docker service automatically at boot by running:
sudo systemctl enable dockerAdd the current user to the Docker group by running:
sudo usermod -aG docker $USEROn 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-pluginOn 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-pluginEnable the Docker service automatically at boot by running:
sudo systemctl enable dockerAdd the current user to the Docker group by running:
sudo usermod -aG docker $USERInstall Docker by running:
sudo pacman -S dockerEnable the Docker service automatically at boot by running:
sudo systemctl enable dockerAdd the current user to the Docker group by running:
sudo usermod -aG docker $USERDownload 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 updateInstall Docker by running:
sudo apt install docker.ioEnable the Docker service automatically at boot by running:
sudo systemctl enable dockerAdd the current user to the Docker group by running:
sudo usermod -aG docker $USERVerify that Docker is working by running:
docker run hello-worldOutput
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
e6590344b1a5: Pulling fs layer
e6590344b1a5: Download complete
e6590344b1a5: Pull complete
Digest: sha256:d715f14f9eca81473d9112df50457893aa4d099adeb4729f679006bf5ea12407
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:
curl -fsSL dl.viash.io | bash
mkdir -p "$HOME/.local/bin"
mv viash "$HOME/.local/bin"Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.
Install Viash by running:
curl -fsSL dl.viash.io | bash
mkdir -p "$HOME/.local/bin"
mv viash "$HOME/.local/bin"Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.
Install Viash by running:
curl -fsSL dl.viash.io | bash
mkdir -p "$HOME/.local/bin"
mv viash "$HOME/.local/bin"Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.
Install Viash by running:
curl -fsSL dl.viash.io | bash
mkdir -p "$HOME/.local/bin"
mv viash "$HOME/.local/bin"Tip: Make sure that the $HOME/.local/bin folder is in your $PATH variable.
Install Viash in Ubuntu by running:
curl -fsSL dl.viash.io | bash
mkdir -p "$HOME/.local/bin"
mv viash "$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 -vOutput
viash 0.9.1 (c) 2020 Data Intuitive
Step 5: install Nextflow
Install Nextflow by running:
curl -s https://get.nextflow.io | bash
mkdir -p "$HOME/.local/bin"
mv nextflow "$HOME/.local/bin"Install Nextflow by running:
curl -s https://get.nextflow.io | bash
mkdir -p "$HOME/.local/bin"
mv nextflow "$HOME/.local/bin"Install Nextflow by running:
curl -s https://get.nextflow.io | bash
mkdir -p "$HOME/.local/bin"
mv nextflow "$HOME/.local/bin"Install Nextflow by running:
curl -s https://get.nextflow.io | bash
mkdir -p "$HOME/.local/bin"
mv nextflow "$HOME/.local/bin"Install Nextflow by running:
curl -s https://get.nextflow.io | bash
mkdir -p "$HOME/.local/bin"
mv nextflow "$HOME/.local/bin"Verify that Nextflow and Docker are working by running:
nextflow run hello -with-dockerN E X T F L O W $HOME 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.
YAML extension (recommended)
This extension provides YAML validation, syntax highlighting, auto completion and document outlining for YAML. A must have for writing and editing Viash config files!
The OpenProblems repo has schemas that help with writing the API and Viash config files. The extension auto detects these schemas.
You can find more recommended extensions for developing with Viash by visiting following link.