✨ (install.sh, merlin_worker.zsh): enhance installation script with fallback methods for eza and zoxide, and add proxy configuration to zsh environment
This commit is contained in:
165
install.sh
165
install.sh
@@ -42,125 +42,98 @@ detect_os() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to install packages
|
||||
# Helper: install eza if the package manager couldn't provide it
|
||||
install_eza_fallback() {
|
||||
local os=$(detect_os)
|
||||
echo "Attempting fallback installation of eza..."
|
||||
case $os in
|
||||
ubuntu|debian)
|
||||
# Ensure gpg exists and add the community repo
|
||||
command -v gpg &> /dev/null || sudo apt-get install -y gpg
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | \
|
||||
sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | \
|
||||
sudo tee /etc/apt/sources.list.d/gierens.list
|
||||
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y eza
|
||||
;;
|
||||
fedora)
|
||||
sudo dnf install -y eza || {
|
||||
command -v cargo &> /dev/null && cargo install eza
|
||||
}
|
||||
;;
|
||||
centos|rhel)
|
||||
if command -v cargo &> /dev/null; then
|
||||
cargo install eza
|
||||
else
|
||||
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||
sudo install -m 755 eza /usr/local/bin/eza
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||
sudo install -m 755 eza /usr/local/bin/eza
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Helper: install zoxide if the package manager couldn't provide it
|
||||
install_zoxide_fallback() {
|
||||
local os=$(detect_os)
|
||||
echo "Attempting fallback installation of zoxide..."
|
||||
case $os in
|
||||
fedora)
|
||||
sudo dnf install -y zoxide || curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
;;
|
||||
centos|rhel)
|
||||
if command -v dnf &> /dev/null && sudo dnf install -y zoxide; then :; else
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Core: install required packages via the preferred package manager, then fall back where needed
|
||||
install_packages() {
|
||||
local os=$(detect_os)
|
||||
local base_packages="zsh git wget fontconfig eza zoxide"
|
||||
|
||||
case $os in
|
||||
macos)
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Homebrew is not installed. Installing Homebrew..."
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
fi
|
||||
brew install zsh git wget fontconfig eza zoxide
|
||||
brew install ${base_packages}
|
||||
;;
|
||||
ubuntu|debian)
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y zsh git wget fontconfig
|
||||
|
||||
# Install eza if not already installed
|
||||
if ! command -v eza &> /dev/null; then
|
||||
echo "Installing eza..."
|
||||
# Install GPG if not present
|
||||
if ! command -v gpg &> /dev/null; then
|
||||
sudo apt install -y gpg
|
||||
fi
|
||||
|
||||
# Add eza repository and install
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
|
||||
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
|
||||
sudo apt update
|
||||
sudo apt install -y eza
|
||||
fi
|
||||
|
||||
# Install zoxide if not already installed
|
||||
if ! command -v zoxide &> /dev/null; then
|
||||
echo "Installing zoxide..."
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
fi
|
||||
sudo apt-get install -y ${base_packages}
|
||||
;;
|
||||
fedora)
|
||||
sudo dnf install -y zsh git wget fontconfig
|
||||
|
||||
# Install eza if not already installed
|
||||
if ! command -v eza &> /dev/null; then
|
||||
echo "Installing eza..."
|
||||
# For Fedora versions prior to 42
|
||||
if ! sudo dnf install -y eza; then
|
||||
echo "eza not available in official repository, installing from cargo..."
|
||||
if command -v cargo &> /dev/null; then
|
||||
cargo install eza
|
||||
else
|
||||
echo "cargo not found. Please install Rust/cargo first or install eza manually."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install zoxide if not already installed
|
||||
if ! command -v zoxide &> /dev/null; then
|
||||
echo "Installing zoxide..."
|
||||
# zoxide is available in Fedora 32+
|
||||
if ! sudo dnf install -y zoxide; then
|
||||
echo "zoxide not available in official repository, installing from install script..."
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
fi
|
||||
fi
|
||||
sudo dnf install -y ${base_packages}
|
||||
;;
|
||||
centos|rhel)
|
||||
sudo yum install -y zsh git wget fontconfig
|
||||
|
||||
# Install eza if not already installed
|
||||
if ! command -v eza &> /dev/null; then
|
||||
echo "Installing eza..."
|
||||
# Install from cargo as primary method
|
||||
if command -v cargo &> /dev/null; then
|
||||
cargo install eza
|
||||
else
|
||||
echo "cargo not found. Installing from binary..."
|
||||
wget -c https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz -O - | tar xz
|
||||
sudo chmod +x eza
|
||||
sudo chown root:root eza
|
||||
sudo mv eza /usr/local/bin/eza
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install zoxide if not already installed
|
||||
if ! command -v zoxide &> /dev/null; then
|
||||
echo "Installing zoxide..."
|
||||
# Try dnf first (RHEL 8+ and CentOS Stream have zoxide in EPEL), fallback to install script
|
||||
if ! (command -v dnf &> /dev/null && sudo dnf install -y zoxide); then
|
||||
echo "Installing zoxide from install script..."
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
fi
|
||||
fi
|
||||
sudo yum install -y ${base_packages}
|
||||
;;
|
||||
arch|manjaro)
|
||||
sudo pacman -Syu --noconfirm zsh git wget fontconfig eza zoxide
|
||||
sudo pacman -Syu --noconfirm ${base_packages}
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported operating system. Please install zsh, git, wget, and fontconfig manually."
|
||||
# Try to install eza from binary for unsupported systems
|
||||
if ! command -v eza &> /dev/null; then
|
||||
echo "Installing eza from binary..."
|
||||
wget -c https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz -O - | tar xz
|
||||
sudo chmod +x eza
|
||||
sudo chown root:root eza
|
||||
sudo mv eza /usr/local/bin/eza
|
||||
fi
|
||||
|
||||
# Try to install zoxide for unsupported systems
|
||||
if ! command -v zoxide &> /dev/null; then
|
||||
echo "Installing zoxide from install script..."
|
||||
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
|
||||
fi
|
||||
exit 1
|
||||
echo "Unsupported operating system. Please install ${base_packages} manually."
|
||||
;;
|
||||
esac
|
||||
|
||||
# Fallbacks for any tools that are still missing after the package-manager step
|
||||
command -v eza &> /dev/null || install_eza_fallback
|
||||
command -v zoxide &> /dev/null || install_zoxide_fallback
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Check if required packages are installed, if not, install them
|
||||
if command -v zsh &> /dev/null && command -v git &> /dev/null && command -v wget &> /dev/null && command -v fc-cache &> /dev/null && command -v eza &> /dev/null && command -v zoxide &> /dev/null; then
|
||||
echo -e "ZSH, Git, wget, fontconfig, eza, and zoxide are already installed\n"
|
||||
|
||||
@@ -15,3 +15,12 @@ export PYSPARK_PYTHON=/usr/bin/python3
|
||||
export PYTHONPATH=::/opt/tiger/arnold_toolbox:/opt/tiger/rh2:/opt/tiger/rh2:/opt/tiger/pyutil:/python:/python/lib/py4j-0.10.9-src.zip
|
||||
export PATH=/opt/tiger/arnold/arnold_entrypoint/debugger/cloudide/release-standalone/bin/remote-cli:$PATH
|
||||
export PYTHONPATH=$PYTHONPATH:/opt/tiger/pyutil:/opt/tiger/rh2:/opt/tiger/arnold_toolbox
|
||||
|
||||
# proxy
|
||||
export HF_ENDPOINT=http://huggingface-proxy-sg.byted.org
|
||||
export http_proxy=http://sys-proxy-rd-relay.byted.org:8118
|
||||
export https_proxy=http://sys-proxy-rd-relay.byted.org:8118
|
||||
export no_proxy=byted.org
|
||||
|
||||
alias proxy_on='export http_proxy=http://sys-proxy-rd-relay.byted.org:8118; export https_proxy=http://sys-proxy-rd-relay.byted.org:8118; export no_proxy=byted.org'
|
||||
alias proxy_off='unset http_proxy; unset https_proxy; unset no_proxy'
|
||||
|
||||
Reference in New Issue
Block a user