mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 00:00:13 -08:00
Enhance setup and testing scripts for improved package management and logging
- Updated setup.sh to check for Nala installation and provide alternative installation methods based on Ubuntu version. - Added error handling for package installation, allowing fallback to apt if Nala fails. - Introduced startup.sh to perform container startup checks, including system info and permissions for logs directory. - Created test-setup.sh to validate bootstrap and setup scripts, including detailed logging of package availability and installation results. - Implemented checks for missing packages and provided recommendations for manual installation. - Enhanced logging for better traceability of actions and errors during setup and testing processes.
This commit is contained in:
@@ -25,11 +25,21 @@ echo -e "${YELLOW}Setting up Nala repository...${NC}"
|
||||
if apt-cache show nala &>/dev/null; then
|
||||
echo -e "${GREEN}Nala is available in standard repositories${NC}"
|
||||
else
|
||||
# Try Ubuntu PPA as an alternative
|
||||
echo -e "${YELLOW}Trying Nala from Ubuntu PPA...${NC}"
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y software-properties-common
|
||||
sudo add-apt-repository -y ppa:volitank/ppa
|
||||
echo -e "${YELLOW}Nala not found in standard repositories. Trying alternative installation methods...${NC}"
|
||||
|
||||
# Check Ubuntu version
|
||||
if grep -q "noble\|lunar\|mantic\|jammy" /etc/os-release; then
|
||||
echo -e "${GREEN}Ubuntu $(grep VERSION_CODENAME /etc/os-release | cut -d= -f2) detected. Ensuring universe repository is enabled...${NC}"
|
||||
# Make sure universe repository is enabled
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y software-properties-common
|
||||
sudo add-apt-repository -y universe
|
||||
else
|
||||
# For older Ubuntu versions try to install directly
|
||||
echo -e "${YELLOW}Older Ubuntu version detected. Trying to install Nala directly...${NC}"
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y software-properties-common
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup VS Code repository
|
||||
@@ -47,21 +57,49 @@ out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archi
|
||||
&& rm "$out" \
|
||||
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
||||
|
||||
# Update package lists
|
||||
sudo apt update
|
||||
# Initialize USING_NALA variable
|
||||
USING_NALA=false
|
||||
|
||||
# Update package lists (ignoring previous errors)
|
||||
echo -e "${YELLOW}Updating package lists...${NC}"
|
||||
sudo apt update || echo -e "${YELLOW}Warning: apt update had some errors, but continuing...${NC}"
|
||||
|
||||
# Install Nala first
|
||||
echo -e "${YELLOW}Installing Nala package manager...${NC}"
|
||||
sudo apt-get install -y nala
|
||||
if sudo apt-get install -y nala; then
|
||||
USING_NALA=true
|
||||
echo -e "${GREEN}Nala installed successfully!${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}Failed to install Nala. Continuing with standard apt...${NC}"
|
||||
fi
|
||||
|
||||
# Configure Nala mirrors
|
||||
echo -e "${YELLOW}Configuring Nala mirrors...${NC}"
|
||||
sudo nala fetch --auto --fetches 3
|
||||
|
||||
# Install remaining packages using Nala
|
||||
echo -e "${YELLOW}Installing packages from packages.list...${NC}"
|
||||
mapfile -t pkgs < <(grep -v '^//' "$SCRIPT_DIR/packages.list" | grep -v -e '^$' -e '^nala$')
|
||||
sudo nala install -y "${pkgs[@]}"
|
||||
# Configure Nala mirrors and install packages
|
||||
if [ "$USING_NALA" = true ]; then
|
||||
echo -e "${YELLOW}Configuring Nala mirrors...${NC}"
|
||||
|
||||
# First, remove any existing nala sources list to avoid issues with invalid mirrors
|
||||
sudo rm -f /etc/apt/sources.list.d/nala-sources.list 2>/dev/null
|
||||
|
||||
# Try to fetch mirrors with less aggressive settings
|
||||
if ! sudo nala fetch --auto --fetches 1 --country auto; then
|
||||
echo -e "${YELLOW}Mirror selection failed, continuing with system default mirrors...${NC}"
|
||||
# Remove any potentially corrupted Nala sources
|
||||
sudo rm -f /etc/apt/sources.list.d/nala-sources.list 2>/dev/null
|
||||
fi
|
||||
|
||||
# Install remaining packages using Nala
|
||||
echo -e "${YELLOW}Installing packages from packages.list with Nala...${NC}"
|
||||
mapfile -t pkgs < <(grep -v '^//' "$SCRIPT_DIR/packages.list" | grep -v -e '^$' -e '^nala$')
|
||||
sudo nala install -y "${pkgs[@]}" || {
|
||||
echo -e "${YELLOW}Nala install failed, falling back to apt...${NC}"
|
||||
sudo apt-get install -y "${pkgs[@]}"
|
||||
}
|
||||
else
|
||||
# Fall back to apt if Nala installation failed
|
||||
echo -e "${YELLOW}Installing packages from packages.list with apt...${NC}"
|
||||
mapfile -t pkgs < <(grep -v '^//' "$SCRIPT_DIR/packages.list" | grep -v -e '^$' -e '^nala$')
|
||||
sudo apt-get install -y "${pkgs[@]}"
|
||||
fi
|
||||
|
||||
# Install Zsh if not already installed
|
||||
echo -e "${YELLOW}Installing Zsh...${NC}"
|
||||
|
||||
Reference in New Issue
Block a user