Skip to main content

shellscript.download

Sponsor Opensource ByJG Install MCP Server GitHub source Build Status

Install development tools on Linux with a single command. A small loader, load.sh, downloads a curated script from shellscript.download and runs it: Docker, PHP and Node.js running in Docker, Java, Maven, NVM, QEMU virtual machines and more.

Everything is installed under $HOME/.shellscript, and anything a script installed can be removed again.

Install the loader​

/bin/bash -c "$(curl -fsSL https://shellscript.download/install/loader)"

Or with wget:

/bin/bash -c "$(wget -qO- https://shellscript.download/install/loader)"

The loader needs gpgv, to check what it downloads. Ubuntu and Debian have it; on Fedora run sudo dnf install gnupg2, on Alpine sudo apk add gpgv. To check the installer itself before running it, see Signed downloads.

Run a script​

# Install the Docker Engine
load.sh docker

# Options of the script go after "--"
load.sh maven -- --version 3.9.6

# Show what a script would do, without doing it
load.sh nvm -- --dry-run

# Show the options of a script
load.sh php-docker -- --help

load.sh --list shows the scripts available, and so does the script catalog.

How the loader works​

  • A script that is not on the machine yet is downloaded from https://shellscript.download/scripts/<script>.sh and cached in $HOME/.shellscript/downloads.
  • The cached copy is used on the next runs. load.sh --update <script> downloads it again.
  • What is downloaded from shellscript.download (a script, the files the scripts share, the loader and its completion) is published with a signature, <file>.sig. The loader uses it only when that is the signature of the key written in load.sh, the one of https://packages.byjg.com/byjg.gpg; otherwise it stops and keeps what it had. See Signed downloads.
  • The script is executed unless --dont-run is given, and load.sh exits with its status code.
  • Commands a script installs go to $HOME/.shellscript/bin, which the loader adds to your PATH.

All its options are in the load page.

Remove what a script installed​

load.sh remove -- maven

# Also remove the downloaded binaries
load.sh remove -- --purge maven

Documentation​

  • Script catalog: one page per script, with its options and examples
  • Docker-backed PHP and Node.js: packages, volumes, environment variables and post-install scripts for php-docker and node-docker
  • Signed downloads: what is signed, with which key, how to check the installer by hand, and what to do when a check fails

Contributing​

To add a script or work on the website, read the contributing guide.


Open source ByJG