我尝试通过 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
Run Code Online (Sandbox Code Playgroud)
我使用的是 Ubuntu 20.04
我用谷歌搜索过这个但没有找到任何有用的信息。
此致。
首先,一些一般建议如何让您自己解决这个问题,而不必来 [so] 并等待其他人来解决您的问题:
计算机非常擅长搜索。因此,在 90% 的情况下,当计算机告诉您它找不到某些东西时,这是因为该东西不存在。
因此,如果我处于您的情况,我要检查的第一件事是计算机告诉我它找不到的东西是否确实存在。特别是,我会检查我是否已经autoconf
安装。
在另外 10% 的情况下,计算机正在寻找的东西就在那里,但它不在计算机正在寻找的地方。所以,我要检查的第二件事是是否autoconf
在$PATH
.
几乎总是,遵循这两个步骤就可以解决我的问题。
现在,谈谈您的具体问题:当您想要编译某个软件时,您需要相应的工具。这些工具包括但不限于软件编写语言的编译器(在本例中为 C)、构建工具(在本例中为 Make)、软件使用的所有库的头文件(在本例中为 C)、软件使用的所有库的头文件(在本例中为 C)。例如libyaml
,zlib
OpenSSL),也许一些配置工具(在本例中autoconf
)。YARV 还使用 Bison 来生成其解析器。
通常,这些所需的工具会在软件的开发人员或贡献者文档中列出。尽管有时,只是假设通过直接从源代码编译来安装软件的人足够聪明,能够自己弄清楚他们需要哪些工具。对于 YARV,有关于运行 testsuite 的要求的文档,这也隐含地要求首先构建代码。
基于 Debian 的 Linux 发行版(Debian、Ubuntu、Mint 等)有一个方便的元软件包,名为 ,build-essential
它依赖于一些最重要的工具,例如gcc
和元软件包make
(而元软件包又依赖于许多其他软件包) 。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
Run Code Online (Sandbox Code Playgroud)