diff --git a/cmd/ipfs/dist/install.sh b/cmd/ipfs/dist/install.sh index 7abb5174a..b6be3edca 100755 --- a/cmd/ipfs/dist/install.sh +++ b/cmd/ipfs/dist/install.sh @@ -3,6 +3,10 @@ bin=ipfs binpaths="/usr/local/bin /usr/bin" +# This variable contains a nonzero length string in case the script fails +# because of missing write permissions. +is_write_perm_missing="" + # this script is currently brain dead. # it merely tries two locations. # in the future maybe use value of $PATH. @@ -11,8 +15,21 @@ for binpath in $binpaths; do if mv -t "$binpath" "$bin" 2> /dev/null; then echo "Moved $bin to $binpath" exit 0 + else + if [ -d "$binpath" -a ! -w "$binpath" ]; then + is_write_perm_missing=1 + fi fi done -echo "cannot install $bin in one of the directories $binpaths" +echo "We cannot install $bin in one of the directories $binpaths" + +if [ -n "$is_write_perm_missing" ]; then + echo "It seems that we do not have the necessary write permissions." + echo "Perhaps try running this script as a privileged user:" + echo + echo " sudo $0" + echo +fi + exit 1