✨ (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
|
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() {
|
install_packages() {
|
||||||
local os=$(detect_os)
|
local os=$(detect_os)
|
||||||
|
local base_packages="zsh git wget fontconfig eza zoxide"
|
||||||
|
|
||||||
case $os in
|
case $os in
|
||||||
macos)
|
macos)
|
||||||
if ! command -v brew &> /dev/null; then
|
if ! command -v brew &> /dev/null; then
|
||||||
echo "Homebrew is not installed. Installing Homebrew..."
|
echo "Homebrew is not installed. Installing Homebrew..."
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
fi
|
fi
|
||||||
brew install zsh git wget fontconfig eza zoxide
|
brew install ${base_packages}
|
||||||
;;
|
;;
|
||||||
ubuntu|debian)
|
ubuntu|debian)
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y zsh git wget fontconfig
|
sudo apt-get install -y ${base_packages}
|
||||||
|
|
||||||
# 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
|
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
sudo dnf install -y zsh git wget fontconfig
|
sudo dnf install -y ${base_packages}
|
||||||
|
|
||||||
# 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
|
|
||||||
;;
|
;;
|
||||||
centos|rhel)
|
centos|rhel)
|
||||||
sudo yum install -y zsh git wget fontconfig
|
sudo yum install -y ${base_packages}
|
||||||
|
|
||||||
# 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
|
|
||||||
;;
|
;;
|
||||||
arch|manjaro)
|
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."
|
echo "Unsupported operating system. Please install ${base_packages} 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
|
|
||||||
;;
|
;;
|
||||||
esac
|
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
|
# 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
|
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"
|
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 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 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
|
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