首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过rvm安装ruby,在ubuntu22.04上运行'__rvm_make -j4‘时出错

无法通过rvm安装ruby,在ubuntu22.04上运行'__rvm_make -j4‘时出错
EN

Stack Overflow用户
提问于 2022-05-10 00:03:59
回答 6查看 6.4K关注 0票数 11

我尝试安装了几个版本的ruby (2.5.5、2.6.6、2.7.4、3.0.0),在所有情况下,它都给出了相同的错误,当然,在每个版本中,在这个示例中,我只将错误放在2.6.6版本上:

代码语言:javascript
运行
复制
 $ rvm use ruby --install --default 2.6.6
Required ruby-2.6.6 is not installed - installing.
ruby-2.6.6 - #removing src/ruby-2.6.6..
Searching for binary rubies, this might take some time.
No binary rubies available for: ubuntu/22.04/x86_64/ruby-2.6.6.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for ubuntu.
Requirements installation successful.
Installing Ruby from source to: /home/elorat/.rvm/rubies/ruby-2.6.6, this may take a while depending on your cpu(s)...
ruby-2.6.6 - #downloading ruby-2.6.6, this may take a while depending on your connection...
ruby-2.6.6 - #extracting ruby-2.6.6 to /home/elorat/.rvm/src/ruby-2.6.6.....
ruby-2.6.6 - #configuring......................................................................
ruby-2.6.6 - #post-configuration..
ruby-2.6.6 - #compiling..........................................................................................................-
Error running '__rvm_make -j4',
please read /home/elorat/.rvm/log/1652140330_ruby-2.6.6/make.log

There has been an error while running make. Halting the installation.

这是我的工作环境:

代码语言:javascript
运行
复制
 $ rvm --version
rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

 $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:    22.04
Codename:   jammy

更新

我无法放置整个make.log文件,因为正文限制在30000字符;make.log文件有90138字符长。我要把前18788字放进去。

这是文件make.log的一部分。

代码语言:javascript
运行
复制
[2022-05-10 07:17:47] __rvm_make
__rvm_make () 
{ 
    \make "$@" || return $?
}
current path: /home/elorat/.rvm/src/ruby-2.6.6
GEM_PATH=/home/elorat/.rvm/gems/ruby-2.6.6:/home/elorat/.rvm/gems/ruby-2.6.6@global
PATH=/home/elorat/.rvm/gems/ruby-2.6.6/bin:/home/elorat/.rvm/gems/ruby-2.6.6@global/bin:/home/elorat/.rvm/rubies/ruby-2.6.6/bin:/home/elorat/.rvm/bin:/home/elorat/.nvm/versions/node/v12.22.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
command(2): __rvm_make -j4
++ make -j4
    BASERUBY = echo executable host ruby is required.  use --with-baseruby option.; false
    CC = gcc
    LD = ld
    LDSHARED = gcc -shared
    CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -std=gnu99  -fPIC 
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -DCANONICALIZATION_FOR_MATHN
    CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/12.1.0 
    DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,libruby.so.2.6  -fstack-protector-strong  
    SOLIBS = -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm 
    LANG = en_US.UTF-8
    LC_ALL = 
    LC_CTYPE = 
gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

compiling ./main.c
compiling dmydln.c
compiling miniinit.c
compiling dmyext.c
compiling miniprelude.c
making dummy probes.h
compiling ast.c
compiling bignum.c
compiling class.c
compiling compar.c
In file included from ./include/ruby.h:33,
                 from internal.h:15,
                 from class.c:26:
class.c: In function ‘move_refined_method’:
class.c:955:30: warning: taking address of packed member of ‘struct rb_method_definition_struct’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  955 |             RB_OBJ_WRITE(me, &me->def->body.refined.orig_me, NULL);
./include/ruby/ruby.h:1493:75: note: in definition of macro ‘RB_OBJ_WRITE’
 1493 | #define RB_OBJ_WRITE(a, slot, b)       rb_obj_write((VALUE)(a), (VALUE *)(slot), (VALUE)(b), __FILE__, __LINE__)
      |                                                                           ^~~~
compiling compile.c
compile.c: In function ‘update_catch_except_flags’:
compile.c:1291:54: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 1291 |         const struct iseq_catch_table_entry *entry = &ct->entries[i];
      |                                                      ^~~~~~~~~~~~~~~
compile.c: In function ‘iseq_set_exception_table’:
compile.c:2356:21: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 2356 |             entry = &table->entries[i];
      |                     ^~~~~~~~~~~~~~~~~~
compiling complex.c
class.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
compiling cont.c
compiling debug.c
compiling debug_counter.c
compiling dir.c
compiling dln_find.c
compiling encoding.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling file.c
compiling gc.c
gc.c: In function ‘mark_current_machine_context’:
gc.c:4377:36: warning: expression does not compute the number of elements in this array; element type is ‘struct __jmp_buf_tag’, not ‘VALUE’ {aka ‘long unsigned int’} [-Wsizeof-array-div]
 4377 |         VALUE v[sizeof(rb_jmp_buf) / sizeof(VALUE)];
      |                                    ^
gc.c:4377:36: note: add parentheses around the second ‘sizeof’ to silence this warning
compiling hash.c
compiling inits.c
compile.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
compiling io.c
compiling iseq.c
iseq.c: In function ‘rb_iseq_mark’:
iseq.c:252:25: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  252 |                 entry = &table->entries[i];
      |                         ^~~~~~~~~~~~~~~~~~
iseq.c: In function ‘rb_iseq_disasm_recursive’:
iseq.c:2067:58: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 2067 |             const struct iseq_catch_table_entry *entry = &body->catch_table->entries[i];
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iseq.c: In function ‘iseq_iterate_children’:
iseq.c:2200:58: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 2200 |             const struct iseq_catch_table_entry *entry = &body->catch_table->entries[i];
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iseq.c: In function ‘iseq_data_to_ary’:
iseq.c:2710:54: warning: taking address of packed member of ‘struct iseq_catch_table’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 2710 |         const struct iseq_catch_table_entry *entry = &iseq_body->catch_table->entries[i];
      |                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compiling load.c
compiling marshal.c
gc.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
iseq.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
compiling math.c
making mjit_config.h
compiling mjit_compile.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling proc.c
compiling process.c
compiling random.c
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
compiling regsyntax.c
compiling ruby.c
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
compiling strftime.c
strftime.c: In function ‘rb_strftime_with_timespec’:
strftime.c:386:39: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  386 |                         if (vtm->wday < 0 || vtm->wday > 6)
      |                                       ^
strftime.c:397:39: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  397 |                         if (vtm->wday < 0 || vtm->wday > 6)
      |                                       ^
compiling string.c
string.c: In function ‘str_replace_shared_without_enc’:
string.c:1189:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
 1189 |             char *ptr2 = STR_HEAP_PTR(str2);
      |             ^~~~
string.c: In function ‘rb_str_setbyte’:
string.c:5471:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
 5471 |     VALUE v = rb_to_int(value);
      |     ^~~~~
string.c: In function ‘get_reg_grapheme_cluster’:
string.c:8521:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
 8521 |         int r = onig_new(&reg_grapheme_cluster, source, source + source_len,
      |         ^~~
strftime.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
compiling struct.c
compiling symbol.c
compiling thread.c
In file included from thread.c:68:
thread_sync.c: In function ‘queue_alloc’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:545:24: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  545 | #define queue_waitq(q) UNALIGNED_MEMBER_PTR(q, waitq)
      |                        ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:590:20: note: in expansion of macro ‘queue_waitq’
  590 |     list_head_init(queue_waitq(q));
      |                    ^~~~~~~~~~~
thread_sync.c: In function ‘queue_fork_check’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:545:24: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  545 | #define queue_waitq(q) UNALIGNED_MEMBER_PTR(q, waitq)
      |                        ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:604:20: note: in expansion of macro ‘queue_waitq’
  604 |     list_head_init(queue_waitq(q));
      |                    ^~~~~~~~~~~
thread_sync.c: In function ‘szqueue_alloc’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:553:27: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  553 | #define szqueue_waitq(sq) UNALIGNED_MEMBER_PTR(sq, q.waitq)
      |                           ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:648:20: note: in expansion of macro ‘szqueue_waitq’
  648 |     list_head_init(szqueue_waitq(sq));
      |                    ^~~~~~~~~~~~~
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_szqueue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:554:27: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  554 | #define szqueue_pushq(sq) UNALIGNED_MEMBER_PTR(sq, pushq)
      |                           ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:649:20: note: in expansion of macro ‘szqueue_pushq’
  649 |     list_head_init(szqueue_pushq(sq));
      |                    ^~~~~~~~~~~~~
thread_sync.c: In function ‘szqueue_ptr’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_szqueue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:554:27: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  554 | #define szqueue_pushq(sq) UNALIGNED_MEMBER_PTR(sq, pushq)
      |                           ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:660:24: note: in expansion of macro ‘szqueue_pushq’
  660 |         list_head_init(szqueue_pushq(sq));
      |                        ^~~~~~~~~~~~~
thread_sync.c: In function ‘rb_queue_initialize’:
thread_sync.c:761:24: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  761 |     RB_OBJ_WRITE(self, &q->que, ary_buf_new());
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:761:5: note: in expansion of macro ‘RB_OBJ_WRITE’
  761 |     RB_OBJ_WRITE(self, &q->que, ary_buf_new());
      |     ^~~~~~~~~~~~
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:545:24: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  545 | #define queue_waitq(q) UNALIGNED_MEMBER_PTR(q, waitq)
      |                        ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:762:20: note: in expansion of macro ‘queue_waitq’
  762 |     list_head_init(queue_waitq(q));
      |                    ^~~~~~~~~~~
thread_sync.c: In function ‘queue_do_push’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:545:24: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  545 | #define queue_waitq(q) UNALIGNED_MEMBER_PTR(q, waitq)
      |                        ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:773:16: note: in expansion of macro ‘queue_waitq’
  773 |     wakeup_one(queue_waitq(q));
      |                ^~~~~~~~~~~
thread_sync.c: In function ‘rb_queue_close’:
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:545:24: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  545 | #define queue_waitq(q) UNALIGNED_MEMBER_PTR(q, waitq)
      |                        ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:818:20: note: in expansion of macro ‘queue_waitq’
  818 |         wakeup_all(queue_waitq(q));
      |                    ^~~~~~~~~~~
In file included from vm_core.h:77,
                 from eval_intern.h:5,
                 from thread.c:68:
thread_sync.c: In function ‘queue_do_pop’:
thread_sync.c:910:27: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  910 |             list_add_tail(&qw.as.q->waitq, &qw.w.node);
      |                           ^~~~~~~~~~~~~~~
ccan/list/list.h:195:44: note: in definition of macro ‘list_add_tail’
  195 | #define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)
      |                                            ^
In file included from thread.c:68:
thread_sync.c: In function ‘rb_szqueue_initialize’:
thread_sync.c:1036:24: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 1036 |     RB_OBJ_WRITE(self, &sq->q.que, ary_buf_new());
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:1036:5: note: in expansion of macro ‘RB_OBJ_WRITE’
 1036 |     RB_OBJ_WRITE(self, &sq->q.que, ary_buf_new());
      |     ^~~~~~~~~~~~
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_queue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
eval_intern.h:170:40: note: in definition of macro ‘UNALIGNED_MEMBER_ACCESS’
  170 | # define UNALIGNED_MEMBER_ACCESS(expr) expr
      |                                        ^~~~
thread_sync.c:553:27: note: in expansion of macro ‘UNALIGNED_MEMBER_PTR’
  553 | #define szqueue_waitq(sq) UNALIGNED_MEMBER_PTR(sq, q.waitq)
      |                           ^~~~~~~~~~~~~~~~~~~~
thread_sync.c:1037:20: note: in expansion of macro ‘szqueue_waitq’
 1037 |     list_head_init(szqueue_waitq(sq));
      |                    ^~~~~~~~~~~~~
eval_intern.h:172:64: warning: taking address of packed member of ‘struct rb_szqueue’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  172 | #define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)

...
EN

回答 6

Stack Overflow用户

发布于 2022-05-12 13:48:36

看来您已经安装了OpenSSL 3.0 (这是Ubuntu22.04上唯一可用的OpenSSL版本)。

由于这是以前OpenSSL版本的主要更新,许多使用OpenSSL的库(包括OpenSSL )都需要进行调整,以使用已更改的OpenSSL API。Ruby3.0支持OpenSSL 3.0,而openssl宝石的最初随RubyVersion3.1.0一起提供。

因此,要想在Ubuntu22.0.4(使用rbenv / rvm /)上安装Ruby的自定义版本,您必须至少使用Ruby3.1.0。

Ubuntu22.04附带Ruby 3.0.2的补丁版本,您也可以使用它。不幸的是,旧的Ruby版本不受直接支持。如果您需要在Ubuntu22.04上使用一个较旧的OpenSSL版本,您还必须编译一个定制的OpenSSL 1.1.1并根据这个自定义OpenSSL编译Ruby1.1.1。

票数 16
EN

Stack Overflow用户

发布于 2022-06-01 09:47:06

我无法在ubuntu 22.04上安装ruby 2.7.6

代码语言:javascript
运行
复制
$ lsb_release -d
Description:    Ubuntu 22.04 LTS
代码语言:javascript
运行
复制
$ rvm install ruby-2.7.6
...
ruby-2.7.6 - #extracting ruby-2.7.6 to /home/dgautier/.rvm/src/ruby-2.7.6 - please wait                                                                                                                                                                                         
ruby-2.7.6 - #configuring - please wait                                                                                                                                                                                                                                         
ruby-2.7.6 - #post-configuration - please wait                                                                                                                                                                                                                                  
ruby-2.7.6 - #compiling - please wait                                                                                                                                                                                                                                           
ruby-2.7.6 - #installing - please wait                                                                                                                                                                                                                                          
Error running '__rvm_make install',                                                                                                                                                                                                                                             
please read /home/kriom/.rvm/log/1654075018_ruby-2.7.6/install.log                                                                                                                                                       
There has been an error while running make install. Halting the installation.        
代码语言:javascript
运行
复制
$ cat /home/kriom/.rvm/log/1654075018_ruby-2.7.6/install.log
installing default gems from lib:   /home/dgautier/.rvm/rubies/ruby-2.7.6/lib/ruby/gems/2.7.0 (build_info, cache, doc, extensions, gems, specifications)                                                                                                                        
                                    benchmark 0.1.0                                                                                                                                                                                                                             
/home/dgautier/.rvm/src/ruby-2.7.6/lib/rubygems/core_ext/kernel_require.rb:83:in `require': cannot load such file -- openssl (LoadError)                                                                                                                                        
        from /home/dgautier/.rvm/src/ruby-2.7.6/lib/rubygems/core_ext/kernel_require.rb:83:in `require'                                                                                                                                                                         
        from /home/dgautier/.rvm/src/ruby-2.7.6/lib/rubygems/specification.rb:2430:in `to_ruby'                                                                                                                                                                                 
        from ./tool/rbinstall.rb:846:in `block (2 levels) in install_default_gem'                                                                                                                                                                                               
        from ./tool/rbinstall.rb:279:in `open_for_install'                                                                                                                                                                                                                      
        from ./tool/rbinstall.rb:845:in `block in install_default_gem'                                                                                                                                                                                                          
        from ./tool/rbinstall.rb:835:in `each'                                                                                          
        from ./tool/rbinstall.rb:835:in `install_default_gem'                                                                                                                                                                                                                   
        from ./tool/rbinstall.rb:799:in `block in <main>'                                                                               
        from ./tool/rbinstall.rb:950:in `block in <main>'                                                                                                                                                                                                                       
        from ./tool/rbinstall.rb:947:in `each'                                                                                                                                                                                                                                  
        from ./tool/rbinstall.rb:947:in `<main>'                                                                                        
make: *** [uncommon.mk:380: do-install-nodoc] Error 1                                                                                                                                                                                                                           
++ return 2                                                                                                                             

此方法解决了此问题:

代码语言:javascript
运行
复制
$ rvm pkg install openssl
$ rvm reinstall 2.7.6 --with-openssl-dir=/home/$(whoami)/.rvm/usr
票数 16
EN

Stack Overflow用户

发布于 2022-05-30 01:31:37

运行rvmsudo rvm pkg install openssl

然后:

rvmsudo rvm install 2.5.1 --with-openssl-dir=/usr/share/rvm/usr

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72179373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档