Skip to content

Instantly share code, notes, and snippets.

@ictus4u
Created August 22, 2022 14:28
Show Gist options
  • Save ictus4u/9341187177530e89cc1e6f8001a48e7c to your computer and use it in GitHub Desktop.
Save ictus4u/9341187177530e89cc1e6f8001a48e7c to your computer and use it in GitHub Desktop.
Upgrade ubuntu distro taking temporally out PPA for avoiding conflicts
#!/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
@ictus4u
Copy link
Author

ictus4u commented Aug 22, 2022

Remember the ## >>>>>>>>>>>>>>>>>>> UPDATE THESE PATTERNS <<<<<<<<<<<<<<<<<<<<< hint

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment