/tmp が noexec で mount されていてpyenv install
が失敗するときは、環境変数 TMPDIR に別のディレクトリを指定してあげたらよいというお話。
pyenv install
を実行中、下記のエラーが出てお亡くなりになった。
python-build: TMPDIR=/tmp cannot hold executables (partition possibly mounted with `noexec`)
ええー、/tmp の mouunt がおかしいの?とか思いながら mount オプションを確認してみる。
# mount | grep /tmp
/dev/mapper/vg00-.tmp on /tmp type ext4 (rw,nosuid,nodev,noexec,relatime,nobarrier,quota,usrquota,grpquota,data=ordered)
noexec 指定で /tmp が mount されてました。
なので execute 可能な別のディレクトリを TMPDIR として指定して、pyenv install
を実行します。
TMPDIR="${PWD}/tmp" pyenv install 3.7.0
これで無事インストールできました。