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 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.
--install wsl
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
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 17.0.13 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
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.reposudo 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.reposudo 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:5b3cc85e16e3058003c13b7821318369dad01dac3dbb877aac3c28182255c724
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 -v
Output
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-docker
N 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.