mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
137 lines
4.8 KiB
Bash
137 lines
4.8 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
configure_repos() {
|
|
echo -e "${YELLOW}Repository configuration...${NC}"
|
|
|
|
|
|
local use_deb822
|
|
if whiptail --title "Repository Format" --defaultno \
|
|
--yesno "Use the modern .sources (deb822) format?\n(default is classic one-line style)" 10 60; then
|
|
use_deb822=true
|
|
else
|
|
use_deb822=false
|
|
fi
|
|
|
|
|
|
local enable_backports
|
|
if whiptail --title "Backports" \
|
|
--yesno "Enable backports?\nBackports provide newer versions of some software (kernel, drivers, Mesa) for better hardware support.\nIt is recommended to enable it (default: Yes)." 12 70; then
|
|
enable_backports=true
|
|
else
|
|
enable_backports=false
|
|
fi
|
|
|
|
|
|
if $use_deb822; then
|
|
generate_deb822_sources "$DEBIAN_CODENAME" "$enable_backports"
|
|
else
|
|
generate_classic_sources "$DEBIAN_CODENAME" "$enable_backports"
|
|
fi
|
|
|
|
|
|
echo "Updating package lists..."
|
|
if sudo apt update; then
|
|
REPOS_CONFIGURED=true
|
|
echo -e "${GREEN}Repositories configured and updated successfully.${NC}"
|
|
|
|
local upgradable
|
|
upgradable=$(apt list --upgradable 2>/dev/null | grep -c /)
|
|
if [ "$upgradable" -gt 0 ]; then
|
|
if whiptail --title "Upgrade System" \
|
|
--yesno "There are $upgradable packages that can be upgraded.\n\nDo you want to upgrade them now?" 10 60; then
|
|
sudo apt upgrade -y
|
|
echo -e "${GREEN}System upgraded.${NC}"
|
|
else
|
|
echo "Skipping upgrade."
|
|
fi
|
|
fi
|
|
else
|
|
echo -e "${RED}apt update failed. Please check your network and repository configuration.${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Generate classic sources.list
|
|
# ----------------------------------------------------------------------
|
|
generate_classic_sources() {
|
|
local codename="$1"
|
|
local backports="$2"
|
|
|
|
|
|
if [ -f /etc/apt/sources.list ]; then
|
|
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
|
|
echo "Backup of sources.list saved as sources.list.bak"
|
|
fi
|
|
|
|
|
|
local content=""
|
|
content="# Official repository\n"
|
|
content+="deb https://deb.debian.org/debian ${codename} main contrib non-free non-free-firmware\n"
|
|
content+="# deb-src https://deb.debian.org/debian ${codename} main contrib non-free non-free-firmware\n\n"
|
|
|
|
content+="# Updates\n"
|
|
content+="deb https://deb.debian.org/debian ${codename}-updates main contrib non-free non-free-firmware\n"
|
|
content+="# deb-src https://deb.debian.org/debian ${codename}-updates main contrib non-free non-free-firmware\n\n"
|
|
|
|
content+="# Security\n"
|
|
content+="deb https://security.debian.org/debian-security ${codename}-security main contrib non-free non-free-firmware\n"
|
|
content+="# deb-src https://security.debian.org/debian-security ${codename}-security main contrib non-free non-free-firmware\n\n"
|
|
|
|
if $backports; then
|
|
content+="# Backports (active)\n"
|
|
content+="deb https://deb.debian.org/debian ${codename}-backports main contrib non-free non-free-firmware\n"
|
|
content+="# deb-src https://deb.debian.org/debian ${codename}-backports main contrib non-free non-free-firmware\n"
|
|
else
|
|
content+="# Backports (not enabled)\n"
|
|
content+="# deb https://deb.debian.org/debian ${codename}-backports main contrib non-free non-free-firmware\n"
|
|
fi
|
|
|
|
|
|
echo -e "$content" | sudo tee /etc/apt/sources.list > /dev/null
|
|
}
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Generate deb822 .sources format
|
|
# ----------------------------------------------------------------------
|
|
generate_deb822_sources() {
|
|
local codename="$1"
|
|
local backports="$2"
|
|
|
|
|
|
sudo mkdir -p /etc/apt/sources.list.d
|
|
|
|
|
|
sudo rm -f /etc/apt/sources.list.d/debian.sources
|
|
|
|
|
|
local content=""
|
|
content="Types: deb\n"
|
|
content+="URIs: https://deb.debian.org/debian\n"
|
|
content+="Suites: ${codename} ${codename}-updates\n"
|
|
content+="Components: main contrib non-free non-free-firmware\n\n"
|
|
|
|
content+="Types: deb\n"
|
|
content+="URIs: https://security.debian.org/debian-security\n"
|
|
content+="Suites: ${codename}-security\n"
|
|
content+="Components: main contrib non-free non-free-firmware\n\n"
|
|
|
|
if $backports; then
|
|
content+="Types: deb\n"
|
|
content+="URIs: https://deb.debian.org/debian\n"
|
|
content+="Suites: ${codename}-backports\n"
|
|
content+="Components: main contrib non-free non-free-firmware\n"
|
|
else
|
|
|
|
true
|
|
fi
|
|
|
|
echo -e "$content" | sudo tee /etc/apt/sources.list.d/debian.sources > /dev/null
|
|
|
|
|
|
if [ -f /etc/apt/sources.list ]; then
|
|
sudo mv /etc/apt/sources.list /etc/apt/sources.list.disabled
|
|
echo "Classic sources.list disabled (renamed to sources.list.disabled)"
|
|
fi
|
|
}
|