69 lines
2.4 KiB
Bash
69 lines
2.4 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
if command -v doas >/dev/null 2>&1; then
|
||
|
SUDO="doas"
|
||
|
elif command -v sudo >/dev/null 2>&1; then
|
||
|
SUDO="sudo"
|
||
|
else
|
||
|
echo "Neither doas nor sudo found." >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Manually specify package manager:
|
||
|
if [ -n "$1" ]; then
|
||
|
PKG_MGR="$1"
|
||
|
# Autodetect package manager:
|
||
|
elif command -v apt >/dev/null 2>&1; then
|
||
|
PKG_MGR="apt"
|
||
|
elif command -v dnf >/dev/null 2>&1; then
|
||
|
PKG_MGR="dnf"
|
||
|
elif command -v yay >/dev/null 2>&1; then
|
||
|
PKG_MGR="yay"
|
||
|
elif command -v paru >/dev/null 2>&1; then
|
||
|
PKG_MGR="paru"
|
||
|
elif command -v pacman >/dev/null 2>&1; then
|
||
|
PKG_MGR="pacman"
|
||
|
elif command -v xbps-install >/dev/null 2>&1; then
|
||
|
PKG_MGR="xbps"
|
||
|
elif command -v pkg_add >/dev/null 2>&1; then
|
||
|
PKG_MGR="pkg_add"
|
||
|
elif command -v pkg >/dev/null 2>&1; then
|
||
|
PKG_MGR="freebsd-pkg"
|
||
|
elif command -v brew >/dev/null 2>&1; then
|
||
|
PKG_MGR="brew"
|
||
|
elif command -v port >/dev/null 2>&1; then
|
||
|
PKG_MGR="macports"
|
||
|
elif command -v zypper >/dev/null 2>&1; then
|
||
|
PKG_MGR="zypper"
|
||
|
elif command -v nix-env >/dev/null 2>&1; then
|
||
|
PKG_MGR="nix"
|
||
|
elif command -v spack >/dev/null 2>&1; then
|
||
|
PKG_MGR="spack"
|
||
|
elif command -v conda >/dev/null 2>&1; then
|
||
|
PKG_MGR="conda"
|
||
|
else
|
||
|
echo "Unsupported package manager" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Install packages
|
||
|
case "$PKG_MGR" in
|
||
|
apt) $SUDO apt install libgc-dev libunistring-dev binutils patchelf libgmp-dev ;;
|
||
|
dnf) $SUDO dnf install gc-devel libunistring-devel binutils patchelf gmp-devel ;;
|
||
|
pacman) $SUDO pacman -S gc libunistring binutils patchelf gmp ;;
|
||
|
yay|paru) $PKG_MGR -S gc libunistring binutils patchelf gmp ;;
|
||
|
xbps) $SUDO xbps-install -S gc libunistring binutils patchelf gmp ;;
|
||
|
pkg_add) $SUDO pkg_add boehm-gc libunistring binutils patchelf gmp ;;
|
||
|
freebsd-pkg) $SUDO pkg install boehm-gc libunistring binutils patchelf gmp ;;
|
||
|
brew) brew install bdw-gc libunistring binutils patchelf gmp ;;
|
||
|
macports) $SUDO port install boehm-gc libunistring binutils patchelf gmp ;;
|
||
|
zypper) $SUDO zypper install gc-devel libunistring-devel binutils patchelf gmp-devel ;;
|
||
|
nix) nix-env -iA nixpkgs.boehm-gc nixpkgs.libunistring nixpkgs.binutils nixpkgs.patchelf nixpkgs.gmp ;;
|
||
|
spack) spack install boehm-gc libunistring binutils patchelf gmp ;;
|
||
|
conda) conda install boehm-gc libunistring binutils patchelf gmp ;;
|
||
|
*)
|
||
|
echo "Unknown package manager: $PKG_MGR" >&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|