Installer64 is a collection of application installer scripts for ephemeral OS environments such as containers, CICD runners, etc. Warning: Installer64 is not inteded for regular OS environments (i.e.: VMs, etc.) where better deployment options are available (i.e.: Ansible, Chef, etc.)
Installer64 is configured by default to use the following standard directory structure:
/opt
: base location for optional applications./opt/<APPLICATION>
: application installation directory./usr/local/bin
: used to provide easy to access sym-links to the installer application and related .env file.$HOME
: base location for user-wide applications.$HOME/.local/bin
: XDG standard user path. Same as/usr/local/bin
, but user-wide.
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
Additional parameters may be available and required by each application installer.
Parameter name format: INST64_<INSTALLER_NAME>_<PARAMETER_NAME>
Common parameters:
INST64_<INSTALLER_NAME>_DEVELOPMENT
: install development components?. Applicable to packages that separates runtime and development.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>_REINSTALL
: forBINARY
installation method only. Reinstall (replace) application if already present?.INST64_<INSTALLER_NAME>_SOURCE
: package source URL (e.g.: GitHub repository, Distro repository, 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.EXTERNAL
: application is distributed using OS standard packages, stored in external package repository.GEM
: applications is distributed as Ruby module. Installation is done user-wide.HELM
: application is distributed as a Helm package.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.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.
- 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
- Bash: 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='REPLACE_WITH_SELECTED_TARGET_RELEASE' &&
curl -LO https://github.com/automation64/installer64/releases/download/${TARGET_RELEASE}/install-installer64 &&
chmod 755 install-installer64
- Deploy Installer64 :
sudo ./install-installer64
Help on implementing new features and maintaining the code base is welcomed.