summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVanessa Rene Valderrama <vvalderrama@linuxfoundation.org>2017-02-14 19:36:32 +0000
committerGerrit Code Review <gerrit@fd.io>2017-02-14 19:36:32 +0000
commitd72cae1f406002624b2e8b2e569206d95d582082 (patch)
tree3e49e6f4ec305b9c9837f18f1a851744ab772cd6
parent7c9a6c112a0c89e19132ca045a28760805234ec8 (diff)
parentde7f7500536419e249ff0dac9b21cec1a6981ca9 (diff)
Merge "Additional fixes for dpkg lock issues"
-rw-r--r--packer/provision/baseline.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/packer/provision/baseline.sh b/packer/provision/baseline.sh
index d97f0e2ed..625728aaf 100644
--- a/packer/provision/baseline.sh
+++ b/packer/provision/baseline.sh
@@ -115,6 +115,31 @@ Dpkg::Options {
EOF
+ # Wrap apt-get to wait for the lock to become available for operation
+ # http://askubuntu.com/questions/132059/how-to-make-a-package-manager-wait-if-another-instance-of-apt-is-running
+ cat <<EOF >> /usr/local/bin/apt-get
+#!/bin/bash
+
+i=0
+tput sc
+while fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ case $(($i % 4)) in
+ 0 ) j="-" ;;
+ 1 ) j="\\" ;;
+ 2 ) j="|" ;;
+ 3 ) j="/" ;;
+ esac
+ tput rc
+ echo -en "\r[$j] Waiting for other software managers to finish..."
+ sleep 0.5
+ ((i=i+1))
+done
+
+/usr/bin/apt-get "$@"
+
+EOF
+ chmod +x /usr/local/bin/apt-get
+
echo "---> Updating operating system"
apt-get update
apt-get upgrade