rbenv install 给我一个构建失败
rbenv install giving me a Build Failed
我在让 ruby-build 通过 rbenv 工作时遇到问题。当我 运行 rbenv install 2.2.2(或任何其他版本)时,我得到以下输出:
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2 Installing ruby-2.2.4...
BUILD FAILED (Ubuntu 16.04 using ruby-build 20170201-7-g5d62e84)
Inspect or clean up the working tree at /tmp/ruby-build.20170227230105.17714 Results logged to /tmp/ruby-build.20170227230105.17714.log
Last 10 log lines:
removed 'conf17793.dir/conf17793.file'
removed 'conf17793.file'
config.guess already exists
config.sub already exists
checking build system type... config.sub: too many arguments
Try `config.sub --help' for more information.
configure: error: /bin/bash tool/config.sub x86_64-pc-linux-gnu
removed '/tmp/cg1RYI8Z/dummy.c' removed '/tmp/cg1RYI8Z/dummy.o' failed
removed 'confdefs.h' removed directory '/opt/rbenv/versions/2.2.4/lib'
removed directory '/opt/rbenv/versions/2.2.4'
完整的日志不会太长,但我会 post 放在这里以防它们相关:
/tmp/ruby-build.20170227230105.17714 /opt/rbenv
removed 'ruby-2.2.4.tar.bz2'
/tmp/ruby-build.20170227230105.17714/ruby-2.2.4 /tmp/ruby-build.20170227230105.17714 /opt/rbenv
removed 'conf17793'
removed 'conf17793.dir/conf17793.file'
removed 'conf17793.file'
config.guess already exists
config.sub already exists
checking build system type... config.sub: too many arguments
Try `config.sub --help' for more information.
configure: error: /bin/bash tool/config.sub x86_64-pc-linux-gnu
removed '/tmp/cg1RYI8Z/dummy.c'
removed '/tmp/cg1RYI8Z/dummy.o' failed
removed 'confdefs.h'
我在网上搜索过,没有看到其他人遇到与 ruby-build
或 rbenv
有关的错误。
我还将解释我的设置以及我如何安装 rbenv 以提供尽可能多的信息。
我是 运行ning Ubuntu 16.04 并将 rbenv 存储库克隆到我的 /opt
目录。 sudo git clone https://github.com/rbenv/rbenv.git /opt
。我将 rbenv 设置行添加到我的 .proflie 文件中。
export RBENV_ROOT="/opt/rbenv/"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
fi
然后我克隆了 ruby-build 仓库 git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build
然后我创建了一个名为 ruby
的新组(我的用户在其中。)并递归地将其设置为所有 /opt/rbenv
的组,所以现在它归 root:ruby
所有.
在 rbenv
似乎正常工作之后,我可以 运行 命令,例如 rbenv versions
(它显示了我手动安装的 system
和 1.9.3-p0
) 和 rbenv local 1.9.3-p0
。没问题。我也可以 运行 rbenv install -l
并毫无问题地获得完整列表,因此它们似乎都已正确安装。
如果有人能告诉我在尝试安装 ruby 版本时可能出现的问题,我将不胜感激。
我发现了问题。 rbenv install
下载指定的 ruby 版本,然后 运行 下载 ./configure --prefix=/path/to/rbenv/versions/2.2.2
。这是失败的命令。在查看我下载的其中一个安装失败的版本并通过它的配置脚本后,它使用名为 config.guess 的脚本来确定系统类型。该脚本创建一些临时文件并删除它们。这通常没问题,但我的路径中有一个自定义 rm
命令,它做了一些事情,但其中之一是添加详细标志。这混淆了 config.guess 脚本的输出,并破坏了 .configure 脚本中依赖于该脚本输出的内容。我通过从我的自定义 rm
命令中删除详细标志并将其放在别名中来解决此问题。
简答(TLDR):
我的路径中有一个自定义 rm
命令,它破坏了东西。
我在让 ruby-build 通过 rbenv 工作时遇到问题。当我 运行 rbenv install 2.2.2(或任何其他版本)时,我得到以下输出:
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2 Installing ruby-2.2.4...
BUILD FAILED (Ubuntu 16.04 using ruby-build 20170201-7-g5d62e84)
Inspect or clean up the working tree at /tmp/ruby-build.20170227230105.17714 Results logged to /tmp/ruby-build.20170227230105.17714.log
Last 10 log lines:
removed 'conf17793.dir/conf17793.file'
removed 'conf17793.file'
config.guess already exists
config.sub already exists
checking build system type... config.sub: too many arguments
Try `config.sub --help' for more information.
configure: error: /bin/bash tool/config.sub x86_64-pc-linux-gnu
removed '/tmp/cg1RYI8Z/dummy.c' removed '/tmp/cg1RYI8Z/dummy.o' failed
removed 'confdefs.h' removed directory '/opt/rbenv/versions/2.2.4/lib'
removed directory '/opt/rbenv/versions/2.2.4'
完整的日志不会太长,但我会 post 放在这里以防它们相关:
/tmp/ruby-build.20170227230105.17714 /opt/rbenv
removed 'ruby-2.2.4.tar.bz2'
/tmp/ruby-build.20170227230105.17714/ruby-2.2.4 /tmp/ruby-build.20170227230105.17714 /opt/rbenv
removed 'conf17793'
removed 'conf17793.dir/conf17793.file'
removed 'conf17793.file'
config.guess already exists
config.sub already exists
checking build system type... config.sub: too many arguments
Try `config.sub --help' for more information.
configure: error: /bin/bash tool/config.sub x86_64-pc-linux-gnu
removed '/tmp/cg1RYI8Z/dummy.c'
removed '/tmp/cg1RYI8Z/dummy.o' failed
removed 'confdefs.h'
我在网上搜索过,没有看到其他人遇到与 ruby-build
或 rbenv
有关的错误。
我还将解释我的设置以及我如何安装 rbenv 以提供尽可能多的信息。
我是 运行ning Ubuntu 16.04 并将 rbenv 存储库克隆到我的 /opt
目录。 sudo git clone https://github.com/rbenv/rbenv.git /opt
。我将 rbenv 设置行添加到我的 .proflie 文件中。
export RBENV_ROOT="/opt/rbenv/"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
fi
然后我克隆了 ruby-build 仓库 git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build
然后我创建了一个名为 ruby
的新组(我的用户在其中。)并递归地将其设置为所有 /opt/rbenv
的组,所以现在它归 root:ruby
所有.
在 rbenv
似乎正常工作之后,我可以 运行 命令,例如 rbenv versions
(它显示了我手动安装的 system
和 1.9.3-p0
) 和 rbenv local 1.9.3-p0
。没问题。我也可以 运行 rbenv install -l
并毫无问题地获得完整列表,因此它们似乎都已正确安装。
如果有人能告诉我在尝试安装 ruby 版本时可能出现的问题,我将不胜感激。
我发现了问题。 rbenv install
下载指定的 ruby 版本,然后 运行 下载 ./configure --prefix=/path/to/rbenv/versions/2.2.2
。这是失败的命令。在查看我下载的其中一个安装失败的版本并通过它的配置脚本后,它使用名为 config.guess 的脚本来确定系统类型。该脚本创建一些临时文件并删除它们。这通常没问题,但我的路径中有一个自定义 rm
命令,它做了一些事情,但其中之一是添加详细标志。这混淆了 config.guess 脚本的输出,并破坏了 .configure 脚本中依赖于该脚本输出的内容。我通过从我的自定义 rm
命令中删除详细标志并将其放在别名中来解决此问题。
简答(TLDR):
我的路径中有一个自定义 rm
命令,它破坏了东西。