mirror of
https://github.com/rbenv/ruby-build.git
synced 2025-11-02 02:01:05 +01:00
Verify that TMPDIR can hold executables before installing
This detects when `/tmp` has been mounted with "noexec" mode and avoids the cryptic error: ./configure: Permission denied Hopefully the information provided will be enough for the user to know that they have to change TMPDIR to another location.
This commit is contained in:
parent
29f1a19154
commit
a4556a7346
1 changed files with 13 additions and 1 deletions
|
|
@ -1016,10 +1016,22 @@ else
|
|||
TMP="${TMPDIR%/}"
|
||||
fi
|
||||
|
||||
if [ ! -w "$TMP" ] || [ ! -x "$TMP" ]; then
|
||||
# Check if TMPDIR is accessible and can hold executables.
|
||||
tmp_executable="${TMP}/ruby-build-test.$$"
|
||||
noexec=""
|
||||
if mkdir -p "$TMP" && touch "$tmp_executable" 2>/dev/null; then
|
||||
cat > "$tmp_executable" <<<"#!$BASH"
|
||||
chmod +x "$tmp_executable"
|
||||
else
|
||||
echo "ruby-build: TMPDIR=$TMP is set to a non-accessible location" >&2
|
||||
exit 1
|
||||
fi
|
||||
"$tmp_executable" 2>/dev/null || noexec=1
|
||||
rm -f "$tmp_executable"
|
||||
if [ -n "$noexec" ]; then
|
||||
echo "ruby-build: TMPDIR=$TMP cannot hold executables (partition possibly mounted with \`noexec\`)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Work around warnings building Ruby 2.0 on Clang 2.x:
|
||||
# pass -Wno-error=shorten-64-to-32 if the compiler accepts it.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue