Make sure sbin paths are in $PATH

The sbin paths (/sbin, /usr/sbin, /usr/local/sbin) need to be in $PATH.
Since $PATH is set in the build environment from the host, if the host
does not have these paths set, they need to be added to $PATH.  In
particular, they must be set for apt-get which calls out to ldconfig,
start-stop-daemon, etc.

The previous check was insufficient because if you had /usr/sbin or
/usr/local/sbin in your $PATH, the addition to $PATH was not done since
the "if" statement evaluated to true.

Change-Id: I52b41d2eb9794e7ee0ae600215cb3ceca191582f
This commit is contained in:
James Slagle 2013-12-16 14:42:59 -05:00
parent 37f3c4fe90
commit 56f4ef0851

View File

@ -43,8 +43,14 @@ export ELEMENTS_PATH=${ELEMENTS_PATH:-$_BASE_ELEMENT_DIR}
export DIB_OFFLINE=${DIB_OFFLINE:-''}
# /sbin and friends aren't automatically included in $PATH when running sudo
# on SUSE Linux which breaks various pieces of this script in exciting ways,
# so inject them into the current $PATH if they're not there.
if ! [[ "$PATH" =~ "/sbin" ]] ; then
export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
# on Fedora/RHEL/SUSE Linux which breaks various pieces of this script in
# exciting ways, so inject them into the current $PATH if they're not there.
if ! [[ ":$PATH" =~ ":/sbin" ]] ; then
export PATH=$PATH:/sbin
fi
if ! [[ ":$PATH" =~ ":/usr/sbin" ]] ; then
export PATH=$PATH:/usr/sbin
fi
if ! [[ ":$PATH" =~ ":/usr/local/sbin" ]] ; then
export PATH=$PATH:/usr/local/sbin
fi