1

我正在尝试通过 asdf 安装 ruby​​ 2.8.0-dev ,asdf install ruby 2.8.0-dev但出现以下错误:

Cloning https://github.com/ruby/ruby.git...
Installing ruby-master...

BUILD FAILED (Ubuntu 20.04 using ruby-build 20200401)

Inspect or clean up the working tree at /tmp/ruby-build.20200523221649.37283.rxnWxu
Results logged to /tmp/ruby-build.20200523221649.37283.log

Last 10 log lines:
/tmp/ruby-build.20200523221649.37283.rxnWxu ~
Cloning into 'ruby-master'...
/tmp/ruby-build.20200523221649.37283.rxnWxu/ruby-master /tmp/ruby-build.20200523221649.37283.rxnWxu ~
/home/carlos/.asdf/plugins/ruby/ruby-build/bin/ruby-build: line 622: autoconf: command not found

我在 Ubuntu 20.04

我用谷歌搜索了这个,但没有找到任何有用的信息。

此致。

4

2 回答 2

4

首先,一些一般性的建议,您可以如何自己解决这个问题,而不必来 [so] 并等待其他人解决您的问题:

计算机非常擅长搜索。因此,在 90% 的情况下,当计算机告诉您它找不到某物时,那是因为该物不存在。

所以,如果我遇到你的情况,我首先要检查的是计算机告诉我它找不到的东西是否真的存在。特别是,我会检查我是否已经autoconf安装。

在另外 10% 的情况下,计算机正在寻找的东西就在那里,但它不在计算机正在寻找的地方。所以,我要检查的第二件事是是否autoconf$PATH.

几乎总是,遵循这两个步骤可以为我解决问题。

现在,针对您的特定问题:当您想要编译某个软件时,您需要相应的工具。这些工具包括但不限于,用于编写软件的语言的编译器(在本例中为 C)、构建工具(在本例中为 Make)、软件使用的所有库的头文件(在本例中例如libyamlzlibOpenSSL),也许是一些配置工具(在这种情况下autoconf)。YARV 也使用 Bison 来生成它的解析器。

通常,这些必需的工具列在软件的开发人员或贡献者文档中。尽管有时,人们只是假设通过直接从源代码编译来安装软件的人足够聪明,可以自己弄清楚他们需要哪些工具。对于 YARV,有关于运行 testsuite 要求的文档,这也隐含地首先需要构建代码。

基于 Debian 的 Linux 发行版(Debian、Ubuntu、Mint 等)有一个方便的元包,称为build-essential它依赖于一些最重要的工具,例如gccmake以及dpkg-dev元包(这又依赖于许多其他包) .

ASDF Ruby 插件实际上在后台使用,ruby-build文档直接链接到系统要求,其中列出了以下内容:

apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev
于 2020-05-24T06:08:21.343 回答
0

我遇到了类似的问题,为我解决了。

简而言之,运行:

sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev

于 2020-05-24T04:58:31.127 回答