Repair broken Ubuntu apt mirrors in build menu
This commit is contained in:
@@ -404,6 +404,64 @@ EOF
|
|||||||
echo "Added $source_file"
|
echo "Added $source_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
disable_known_bad_ubuntu_mirrors() {
|
||||||
|
local files=()
|
||||||
|
local file backup temp_file
|
||||||
|
|
||||||
|
[[ -e /etc/apt/sources.list ]] && files+=("/etc/apt/sources.list")
|
||||||
|
for file in /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources; do
|
||||||
|
[[ -e "$file" ]] && files+=("$file")
|
||||||
|
done
|
||||||
|
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
if grep -q 'asi-fs-w\.contabo\.net/ubuntu' "$file" 2>/dev/null; then
|
||||||
|
backup="$file.agrarian-disabled"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
|
if [[ "$file" == *.sources ]]; then
|
||||||
|
cat > "$temp_file" <<EOF
|
||||||
|
# Disabled by Agrarian build menu because this Ubuntu mirror returned apt errors.
|
||||||
|
# Original file saved at: $backup
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
sed 's/^/# Disabled by Agrarian build menu: /' "$file" > "$temp_file"
|
||||||
|
fi
|
||||||
|
sudo_cmd cp "$file" "$backup"
|
||||||
|
sudo_cmd install -m 0644 "$temp_file" "$file"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
echo "Disabled broken Ubuntu mirror in $file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
repair_ubuntu_apt_on_failure() {
|
||||||
|
local reason="$1"
|
||||||
|
|
||||||
|
cat >&2 <<EOF
|
||||||
|
|
||||||
|
apt-get update failed while using the current Ubuntu apt sources.
|
||||||
|
$reason
|
||||||
|
|
||||||
|
The script can add official Ubuntu apt sources and disable known broken Ubuntu
|
||||||
|
mirrors such as asi-fs-w.contabo.net/ubuntu.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if ! confirm "Repair Ubuntu apt sources and retry?"; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
repair_ubuntu_sources
|
||||||
|
disable_known_bad_ubuntu_mirrors
|
||||||
|
sudo_cmd apt-get update
|
||||||
|
}
|
||||||
|
|
||||||
|
apt_get_update_with_repair() {
|
||||||
|
if sudo_cmd apt-get update; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
repair_ubuntu_apt_on_failure "This commonly happens on VPS images with stale provider mirrors."
|
||||||
|
}
|
||||||
|
|
||||||
install_packages() {
|
install_packages() {
|
||||||
has_cmd apt-get || fail "This installer currently supports Ubuntu/Debian apt-get hosts."
|
has_cmd apt-get || fail "This installer currently supports Ubuntu/Debian apt-get hosts."
|
||||||
|
|
||||||
@@ -442,7 +500,7 @@ install_packages() {
|
|||||||
if ubuntu_sources_need_repair; then
|
if ubuntu_sources_need_repair; then
|
||||||
repair_ubuntu_sources
|
repair_ubuntu_sources
|
||||||
fi
|
fi
|
||||||
sudo_cmd apt-get update
|
apt_get_update_with_repair
|
||||||
if ! sudo_cmd apt-get install -y "${packages[@]}"; then
|
if ! sudo_cmd apt-get install -y "${packages[@]}"; then
|
||||||
cat >&2 <<EOF
|
cat >&2 <<EOF
|
||||||
|
|
||||||
@@ -467,7 +525,7 @@ install_bootstrap_packages() {
|
|||||||
if ubuntu_sources_need_repair; then
|
if ubuntu_sources_need_repair; then
|
||||||
repair_ubuntu_sources
|
repair_ubuntu_sources
|
||||||
fi
|
fi
|
||||||
sudo_cmd apt-get update
|
apt_get_update_with_repair
|
||||||
sudo_cmd apt-get install -y ca-certificates git
|
sudo_cmd apt-get install -y ca-certificates git
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user