update install.sh
This commit is contained in:
parent
e31761a54c
commit
5c764e650c
54
install.sh
54
install.sh
@ -32,9 +32,9 @@ function msg_err() {
|
|||||||
function install_package() {
|
function install_package() {
|
||||||
local pkg="$1"
|
local pkg="$1"
|
||||||
local sudo_cmd=""
|
local sudo_cmd=""
|
||||||
local distro=""
|
local OS_ID=""
|
||||||
local os_data
|
|
||||||
|
|
||||||
|
# Determine if root or use sudo/doas
|
||||||
case "$(id -u)" in
|
case "$(id -u)" in
|
||||||
0) sudo_cmd="" ;;
|
0) sudo_cmd="" ;;
|
||||||
*)
|
*)
|
||||||
@ -45,36 +45,48 @@ function install_package() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
os_data="$(cat /etc/*release 2>/dev/null | tr '[:upper:]' '[:lower:]')"
|
# Get OS ID (e.g., arch, debian, ubuntu, fedora, alpine, etc.)
|
||||||
|
OS_ID=$(
|
||||||
|
cat /etc/*release 2>/dev/null |
|
||||||
|
tr '[:upper:]' '[:lower:]' |
|
||||||
|
grep "^id=" | head -n1 | cut -d= -f2 | tr -d '"'
|
||||||
|
)
|
||||||
|
|
||||||
case "$os_data" in
|
case "$OS_ID" in
|
||||||
*id=artix*|*id=arch*|*id=hyperbola*) distro="arch" ;;
|
arch|manjaro|endeavouros|hyperbola|artix)
|
||||||
*id_like=arch*) distro="arch" ;;
|
|
||||||
*id=debian*|*id=ubuntu*|*id_like=debian*) distro="debian" ;;
|
|
||||||
*)
|
|
||||||
msg_err "Sistema operativo no soportado automáticamente." \
|
|
||||||
"Operating system not automatically supported."
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$distro" in
|
|
||||||
arch)
|
|
||||||
$sudo_cmd pacman -Sy --noconfirm "$pkg"
|
$sudo_cmd pacman -Sy --noconfirm "$pkg"
|
||||||
;;
|
;;
|
||||||
debian)
|
debian|ubuntu|linuxmint|pop|pop_os)
|
||||||
$sudo_cmd apt-get update
|
$sudo_cmd apt update
|
||||||
$sudo_cmd apt-get install -y "$pkg"
|
$sudo_cmd apt install -y "$pkg"
|
||||||
|
;;
|
||||||
|
fedora|rhel|centos)
|
||||||
|
$sudo_cmd dnf install -y "$pkg"
|
||||||
|
;;
|
||||||
|
opensuse*|suse)
|
||||||
|
$sudo_cmd zypper --non-interactive install "$pkg"
|
||||||
|
;;
|
||||||
|
alpine)
|
||||||
|
$sudo_cmd apk add --no-cache "$pkg"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
msg_err "Sistema operativo no soportado: $OS_ID" "Unsupported OS: $OS_ID"
|
||||||
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
programs=("curl" "less" "ls" "netstat" "unzip")
|
programs=("curl" "less" "ls" "iproute2" "unzip")
|
||||||
for program in "${programs[@]}"; do
|
for program in "${programs[@]}"; do
|
||||||
if ! command -v "$program" &>/dev/null; then
|
if ! command -v "$program" &>/dev/null; then
|
||||||
case "$program" in
|
case "$program" in
|
||||||
netstat) pkg="net-tools" ;;
|
|
||||||
ls) pkg="coreutils" ;;
|
ls) pkg="coreutils" ;;
|
||||||
|
iproute2)
|
||||||
|
case "$OS_ID" in
|
||||||
|
fedora|rhel|centos) pkg="iproute" ;;
|
||||||
|
*) pkg="iproute2" ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
*) pkg="$program" ;;
|
*) pkg="$program" ;;
|
||||||
esac
|
esac
|
||||||
msg "Instalando dependencia: $pkg" "Installing dependency: $pkg"
|
msg "Instalando dependencia: $pkg" "Installing dependency: $pkg"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user