【问题标题】:Ruby: TMPDIR=/tmp cannot hold executablesRuby:TMPDIR=/tmp 不能保存可执行文件
【发布时间】:2021-05-08 06:07:36
【问题描述】:

我正在尝试使用 rbenv 在远程服务器上安装 Ruby

但是,当我运行命令 rbenv install 2.7.2 时,我收到以下错误:

ruby-build: TMPDIR=/tmp 无法保存可执行文件(分区可能使用noexec 挂载)

我已正确安装了 Ruby 编程语言的 rbenv 和其他依赖项。

【问题讨论】:

    标签: ruby rbenv


    【解决方案1】:

    经过一些研究和试验,我能够解决它。

    我是这样解决的

    问题是 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 启动文件。
    【解决方案2】:

    添加到OP's answer,您无需创建新的 tmp 文件夹。仅添加到路径也应该有效。

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2012-12-15
      • 2012-06-13
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2015-12-11
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多