Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- if (( UID != 0 )); then
- echo >&2 "E: you must be root in order to run this script."
- exit 1
- fi
- if (( $# == 0 )); then
- echo >&2 "USAGE: ${0##*/} <.deb file> [<.deb file> ...]"
- exit 1
- fi
- debfiles=("$@")
- pkgnames=()
- to_purge=()
- for debfile in "${debfiles[@]}"; do
- basename=$(basename -- "$debfile") || exit "$?"
- pkgname=${basename%%_*}
- if dpkg -s "$pkgname" >/dev/null 2>/dev/null; then
- to_purge+=("$pkgname")
- fi
- pkgnames+=("$pkgname")
- done
- if (( ${#to_purge[@]} )); then
- dpkg --purge "${to_purge[@]}" || exit "$?"
- fi
- dpkg --unpack "${debfiles[@]}" || exit "$?"
- apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -f install || exit "$?"
- dpkg --configure -a || exit "$?"
- dpkg --set-selections < <(printf '%s hold\n' "${pkgnames[@]}") || exit "$?"
Add Comment
Please, Sign In to add comment