Created
August 22, 2022 14:28
-
-
Save ictus4u/9341187177530e89cc1e6f8001a48e7c to your computer and use it in GitHub Desktop.
Upgrade ubuntu distro taking temporally out PPA for avoiding conflicts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -euo pipefail | |
readonly SELF="$(readlink -f "$0")" | |
## Run as root | |
[ $UID == 0 ] || exec sudo -E "$SELF" "$@" | |
die() { echo "[ERROR] $*" >&2 ; exit 1 ; } | |
cmd() { echo "[#] $*" >&2; "$@" ; } | |
upgrade_sources() { | |
## >>>>>>>>>>>>>>>>>>> UPDATE THESE PATTERNS <<<<<<<<<<<<<<<<<<<<< | |
cmd sed -i 's/impish/jammy/g' "$@" | |
cmd sed -i 's/\b21\.10\b/22.04/g' "$@" | |
} | |
move_out_ppa() { | |
## The ppa usually interfere with the upgrade, so we take it out temporarily | |
cmd mkdir -p /etc/apt/sources.list.d.bak | |
cmd chmod -R u+rwX,go=rX /etc/apt/sources.list.d.bak | |
cmd mv /etc/apt/sources.list.d/* /etc/apt/sources.list.d.bak/ || true | |
} | |
backup_sources_list() { | |
cmd cp -a /etc/apt/sources.list /etc/apt/sources.list.bak | |
} | |
do_upgrade() { | |
cmd apt-get update | |
cmd apt-get upgrade -y | |
cmd apt-get dist-upgrade -y | |
} | |
fix_and_clean() { | |
cmd apt-get install -f | |
cmd apt-get autoremove -y | |
} | |
copy_back_ppa() { | |
cmd cp -a /etc/apt/sources.list.d.bak/* /etc/apt/sources.list.d/ || true | |
} | |
install_ubuntu_desktop() { | |
cmd apt-get install ubuntu-desktop -y | |
} | |
main() { | |
move_out_ppa | |
backup_sources_list | |
upgrade_sources /etc/apt/sources.list | |
do_upgrade | |
fix_and_clean | |
copy_back_ppa | |
upgrade_sources /etc/apt/sources.list.d/* | |
do_upgrade | |
install_ubuntu_desktop | |
fix_and_clean | |
} | |
main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Remember the ## >>>>>>>>>>>>>>>>>>> UPDATE THESE PATTERNS <<<<<<<<<<<<<<<<<<<<< hint