【发布时间】:2021-05-08 06:07:36
【问题描述】:
我正在尝试使用 rbenv 在远程服务器上安装 Ruby。
但是,当我运行命令 rbenv install 2.7.2 时,我收到以下错误:
ruby-build: TMPDIR=/tmp 无法保存可执行文件(分区可能使用
noexec挂载)
我已正确安装了 Ruby 编程语言的 rbenv 和其他依赖项。
【问题讨论】:
我正在尝试使用 rbenv 在远程服务器上安装 Ruby。
但是,当我运行命令 rbenv install 2.7.2 时,我收到以下错误:
ruby-build: TMPDIR=/tmp 无法保存可执行文件(分区可能使用
noexec挂载)
我已正确安装了 Ruby 编程语言的 rbenv 和其他依赖项。
【问题讨论】:
经过一些研究和试验,我能够解决它。
我是这样解决的:
问题是 rbenv 安装程序在下载和安装 ruby 时需要一个目录来存储临时文件,但是,作为存储临时文件的默认目录的 /tmp 目录不是我当前的用户无法访问。
我尝试更改 /tmp 目录的权限以允许我当前的用户访问它,但是我没有成功。
我所要做的就是在我的用户的主目录中创建一个新的tmp 目录:
mkdir ~/tmp
接下来,我打开了用户主目录下的.bashrc文件:
sudo nano ~/.bashrc
接下来,我将下面这行添加到文件底部并保存:
export TMPDIR="$HOME/tmp"
最后,我重新启动了终端或运行以下命令将新添加的路径加载到我当前的 shell/终端会话中:
exec "$SHELL"
现在,我可以运行命令rbenv install 2.7.2,它运行良好。
资源:TMPDIR=/tmp cannot hold executables (partition possibly mounted with noexec)
【讨论】:
~tmp 是用户tmp 的主目录,但~/tmp 是您主目录中的tmp。
~/tmp 目录,然后尝试使用env TMPDIR="$HOME/tmp" rbenv install 2.7.2,这样您就不需要更改任何shell 启动文件。
添加到OP's answer,您无需创建新的 tmp 文件夹。仅添加到路径也应该有效。
【讨论】: