🚀 Streamlined Application Installation for Ephemeral Environments
Installer64 is a collection of command-line scripts designed to quickly install applications in temporary environments like Docker containers, CI/CD runners (GitHub Actions, GitLab CI, etc.), and other short-lived systems.
It aims to provide the simplest and most efficient way to get specific tools ready within these contexts.
Installer64 is configured by default to use the following standard directory structure:
- System-wide installations:
/opt
: base destination for installations/opt/<APPLICATION>
: application installation directory./usr/local/bin
: standard searchable path where application binaries are published to
- User-wide installations:
$HOME/at64
: base destination for installations$HOME/at64/<APPLICATION>
: application installation directory.$HOME/.local/bin
: standard searchable path where application binaries are published to
Installer64 scripts can be customized using the following parameters as shell environment variables:
INST64_BASHLIB64
: Bashlib64 location. Default:/opt/bl64/bashlib64.bash
INST64_DEBUG
: Enable script debugging?. Default:NO
INST64_LOCAL_BIN
: Searchable path for local executables. Default:/usr/local/bin
INST64_LOCAL_ROOT
: Linux well-known base path for local content. Default:/usr/local
INST64_OPT_ROOT
: Linux well-known base path for non-os packaged content. Default:/opt
INST64_REPLACE_INSTALLED
: Replace if already installed?. Default:NO
INST64_REFRESH_PACKAGE_MANAGER
: Refresh package manager before installation and cleanup after?. Default:YES
INST64_SYSTEM_WIDE
: Install system wide?. Default:YES
if running as root,NO
otherwise.
Additional parameters may be available and required by each application installer.
Parameter name format: INST64_<INSTALLER_NAME>_<PARAMETER_NAME>
Common parameters:
INST64_<INSTALLER_NAME>_METHOD
: installation method. SeeInstallation methods
section for further detailsINST64_<INSTALLER_NAME>_PLATFORM
: hardware platform (e.g.: linux_amd64, etc.)INST64_<INSTALLER_NAME>_TARGET
: full path to the installation destination.INST64_<INSTALLER_NAME>_VERSION
: target application version in semver format (x.y.z).
Installer64 will implement the best available installation method for each application. The selection criteria is based on the following priority list:
BINARY
: application is distributed as a single pre-compiled binary. For example, GO based tools.CUSTOM
: last resort when no other option is available. Application is distributed as a single pre-compiled binary.GEM
: applications is distributed as Ruby module. Installation is done user-wide.KREW
: application is distributed as a Krew (KubeCTL plugin) package.NATIVE
: application is distributed using OS standard packages. For example, RPM for RHEL, DEB for Debian/Ubuntu, etc.NPM
: applications is distributed as NodeJS module. Installation is done user-wide.PIP
: applications is distributed as Python module. Used whenPIPX
is not available. Installation is done user-wide.PIPX
: applications is distributed as Python module. Installation is done user-wide.
- Bash V4: used by installer scripts.
- Sudo: most installers will require privileged execution. Used if not already running as root.
- Curl or Wget, Tar and GZip: used to download and unpack Installer64 and BashLib64
- Download Installer64 package:
- Select target releases: https://github.com/automation64/installer64/releases
- Download asset:
install-installer64
export TARGET_RELEASE="$(curl -s "https://github.com/api/repos/automation64/installer64/releases/latest" | grep '"tag_name":' | cut -d '"' -f 4)" &&
test -n "$TARGET_RELEASE" &&
curl -LO https://github.com/automation64/installer64/releases/download/${TARGET_RELEASE}/install-installer64 &&
chmod 755 install-installer64 &&
echo "Installer ready: ./install-installer64" ||
echo 'Error: unable to download installer'
- Deploy Installer64 :
# Install on user's home (user-wide)
./install-installer64
# or, install on /opt (system-wide)
export INST64_SYSTEM_WIDE='YES'
sudo -E ./install-installer64
- Select application installer from
/opt/installer64
- Check for required installer parameters and set as environment variables
- Run installer
INST64_PARAMETERX='VALUEY' sudo -E /opt/installer64/install-APPLICATION_NAME
Contributions are welcome! Help us improve by submitting issues, feature requests, or pull requests.
Installer64 is licensed under the Apache-2.0 License.
🌟 If you find this project useful, consider giving it a star! ⭐