Guest User

install-deb

a guest
Apr 23rd, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.83 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. if (( UID != 0 )); then
  4.     echo >&2 "E: you must be root in order to run this script."
  5.     exit 1
  6. fi
  7.  
  8. if (( $# == 0 )); then
  9.     echo >&2 "USAGE: ${0##*/} <.deb file> [<.deb file> ...]"
  10.     exit 1
  11. fi
  12. debfiles=("$@")
  13. pkgnames=()
  14. to_purge=()
  15. for debfile in "${debfiles[@]}"; do
  16.     basename=$(basename -- "$debfile") || exit "$?"
  17.     pkgname=${basename%%_*}
  18.     if dpkg -s "$pkgname" >/dev/null 2>/dev/null; then
  19.         to_purge+=("$pkgname")
  20.     fi
  21.     pkgnames+=("$pkgname")
  22. done
  23. if (( ${#to_purge[@]} )); then
  24.     dpkg --purge "${to_purge[@]}" || exit "$?"
  25. fi
  26. dpkg --unpack "${debfiles[@]}" || exit "$?"
  27. apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -f install || exit "$?"
  28. dpkg --configure -a || exit "$?"
  29. dpkg --set-selections < <(printf '%s hold\n' "${pkgnames[@]}") || exit "$?"
Add Comment
Please, Sign In to add comment