one-click-installation-script/package.sh

121 lines
6.6 KiB
Bash
Raw Normal View History

2022-12-16 10:34:57 +08:00
#!/bin/bash
2022-12-16 11:25:28 +08:00
#!/bin/bash
function change_ubuntu_apt_sources {
# Check the system's Ubuntu version
ubuntu_version=$(lsb_release -r | awk '{print $2}')
if [ "$ubuntu_version" = "12.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the Ubuntu 12.04 apt sources list that can be used with apt to sources.list
echo "deb http://old-releases.ubuntu.com/ubuntu precise main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://old-releases.ubuntu.com/ubuntu precise-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://old-releases.ubuntu.com/ubuntu precise-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
elif [ "$ubuntu_version" = "14.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the standard Ubuntu 14.04 apt sources list to sources.list
echo "deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
elif [ "$ubuntu_version" = "16.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the standard Ubuntu 16.04 apt sources list to sources.list
echo "deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
elif [ "$ubuntu_version" = "18.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the standard Ubuntu 18.04 apt sources list to sources.list
echo "deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
elif [ "$ubuntu_version" = "20.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the standard Ubuntu 20.04 apt sources list to sources.list
echo "deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
elif [ "$ubuntu_version" = "22.04" ]; then
# Backup the current sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Write the standard Ubuntu 22.04 apt sources list to sources.list
echo "deb http://archive.ubuntu.com/ubuntu hirsute main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu hirsute-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu hirsute-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu hirsute-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
else
echo "The system is not Ubuntu 12/14/16/18/20/22 . No changes were made to the apt sources."
fi
################ main #############################################
2022-12-16 10:46:05 +08:00
sudo apt update
if [ $? -ne 0 ]; then
echo "The update failed. Attempting to unlock the apt sources..."
if [ -f /etc/debian_version ]; then
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
elif [ -f /etc/lsb-release ]; then
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
fi
sudo apt update
if [ $? -ne 0 ]; then
echo "The update still failed. Attempting to fix missing GPG keys..."
if [ -f /etc/debian_version ]; then
sudo apt-key update
elif [ -f /etc/lsb-release ]; then
echo "try sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys missing key"
fi
fi
2022-12-16 10:34:57 +08:00
fi
# Update the package list to pick up the new sources
sudo apt update
2022-12-16 10:46:05 +08:00
# Check the exit status of the update command
if [ $? -ne 0 ]; then
# Print a message indicating that the update failed
echo "The update failed. Attempting to replace the apt sources..."
# Check if the system is Debian or Ubuntu
if [ -f /etc/debian_version ]; then
# Replace the current apt sources list with the one at the specified URL
sudo curl -o /etc/apt/sources.list https://raw.githubusercontent.com/spiritLHLS/one-click-installation-script/main/debian.txt
elif [ -f /etc/lsb-release ]; then
# Replace the current apt sources list with the one at the specified URL
2022-12-16 11:25:28 +08:00
# sudo curl -o /etc/apt/sources.list https://raw.githubusercontent.com/spiritLHLS/one-click-installation-script/main/ubuntu.txt
# 获取系统版本
release=$(lsb_release -cs)
# 获取源列表中的版本
sources_release=$(grep "^deb" /etc/apt/sources.list | head -n1 | cut -d' ' -f3)
# 如果版本不同,则执行 change_apt_sources 函数
if [ "$release" != "$sources_release" ]; then
change_ubuntu_apt_sources
fi
2022-12-16 10:46:05 +08:00
else
# Print a message indicating that the system is not supported
echo "This system is not supported. The apt sources will not be modified."
fi
# Update the package list again to pick up the new sources
sudo apt update
fi