X-Git-Url: https://iankelling.org/git/?p=distro-functions;a=blobdiff_plain;f=src%2Fpackage-manager-abstractions;fp=src%2Fpackage-manager-abstractions;h=a050be9dc4061ff2bbae3e3c4fac2aceb394fb14;hp=34e32a6e43ea4922b2cf862079b1dedc14c67562;hb=7d92a4f0b607ead76ccf488ee639a849c5ffeb83;hpb=31565958031fc7e309693b9aadadc374d687e2d8 diff --git a/src/package-manager-abstractions b/src/package-manager-abstractions index 34e32a6..a050be9 100644 --- a/src/package-manager-abstractions +++ b/src/package-manager-abstractions @@ -48,6 +48,12 @@ if command -v yum &> /dev/null; then } elif command -v apt-get &>/dev/null; then + pcheck() { + if dpkg -s -- "$@" | grep -Fx "Status: install ok installed" &>/dev/null; then + return 1 + fi + return 0 + } pp() { # package policy apt-cache policy $@ } @@ -72,19 +78,15 @@ elif command -v apt-get &>/dev/null; then fi } pi() { - if dpkg -s -- "$@" | grep -Fx "Status: install ok installed" &>/dev/null; then - return 0 - fi + pcheck "$@" || return 0 while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done pupdate local s; [[ $EUID != 0 ]] && s=sudo - $s $PI_PREFIX apt-get -y --allow-downgrades install --purge --auto-remove "$@" + $s $PI_PREFIX apt-get -y install --purge --auto-remove "$@" } pi-nostart() { - if dpkg -s -- "$@" &>/dev/null; then - return 0 - fi + pcheck "$@" || return 0 while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done pupdate local s; [[ $EUID != 0 ]] && s=sudo @@ -94,7 +96,7 @@ elif command -v apt-get &>/dev/null; then exit 101 EOF $s chmod +x $f - $s apt-get -y install --allow-downgrades --purge --auto-remove "$@" + $s apt-get -y install --purge --auto-remove "$@" $s rm $f } pf() { @@ -114,17 +116,19 @@ EOF pu() { local s; [[ $EUID != 0 ]] && s=sudo while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done - $s apt-get -y remove --allow-downgrades --purge --auto-remove "$@" + $s apt-get -y remove --purge --auto-remove "$@" # seems slightly redundant, but it removes more stuff sometimes. - $s apt-get -y --allow-downgrades autoremove + $s apt-get -y autoremove } pup() { # upgrade while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done pupdate local s; [[ $EUID != 0 ]] && s=sudo - $s apt-get -y dist-upgrade --allow-downgrades --purge --auto-remove "$@" - $s apt-get -y autoremove --allow-downgrades - $s checkrestart + $s apt-get -y dist-upgrade --purge --auto-remove "$@" + $s apt-get -y autoremove + if [[ -e /usr/sbin/checkrestart ]]; then + $s /usr/sbin/checkrestart -p + fi } # package info pl() {