diff options
author | Rudy Grigar <rgrigar@linuxfoundation.org> | 2017-02-13 16:57:31 -0800 |
---|---|---|
committer | Rudy Grigar <rgrigar@linuxfoundation.org> | 2017-02-13 20:00:39 -0800 |
commit | de7f7500536419e249ff0dac9b21cec1a6981ca9 (patch) | |
tree | 1142c2fe83df7e59691ed530318beb119a1babb7 /packer/provision | |
parent | 0a8905cc11b0f3e3e5d35da7527ae3e8bc7e84ec (diff) |
Additional fixes for dpkg lock issues
This adds a wrapper around apt-get to loop until the lock is available
for dpkg operations.
Change-Id: I85d3b1f1e6992a046d021a192997f307c7ca4785
Signed-off-by: Rudy Grigar <rgrigar@linuxfoundation.org>
Diffstat (limited to 'packer/provision')
-rw-r--r-- | packer/provision/baseline.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packer/provision/baseline.sh b/packer/provision/baseline.sh index d97f0e2e..625728aa 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 |