shellscript.download
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>.shand 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 inload.sh, the one ofhttps://packages.byjg.com/byjg.gpg; otherwise it stops and keeps what it had. See Signed downloads. - The script is executed unless
--dont-runis given, andload.shexits with its status code. - Commands a script installs go to
$HOME/.shellscript/bin, which the loader adds to yourPATH.
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-dockerandnode-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.