Как установить Ruby 2.3.0 на Ubuntu 21.1 с помощью rbenv?

Я работаю над приложением, написанным с использованием Ruby 2.3.0 (с Rails), а моя операционная система - Linux Ubuntu 21.1. (В надежде обновить проектную версию Ruby, но тоже не могу этого сделать)

Чтобы приложение заработало, я сначала решил использовать rbenv для установки 2.3.0, но после долгих поисков проблем я продолжал получать следующие ошибки:

       ~$ rbenv install 2.3.0 

     Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...

WARNING: ruby-2.3.0 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.

mkdir: cannot create directory ‘/usr/local/opt’: Permission denied

BUILD FAILED (Ubuntu 21.10 using ruby-build 20211203)

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

Last 10 log lines:
/tmp/ruby-build.20211213183110.502681.Sf1koA /
/tmp/ruby-build.20211213183110.502681.Sf1koA/ruby-2.3.0 /tmp/ruby-build.20211213183110.502681.Sf1koA /

Файл журнала ошибок содержит:

      /tmp/ruby-build.20211213183110.502681.Sf1koA /
/tmp/ruby-build.20211213183110.502681.Sf1koA/ruby-2.3.0 /tmp/ruby-build.2021121>

Я попытался установить openssl 1.0, используя:

       ~$ brew install rbenv/tap/openssl@1.0

 x86_64cpuid.s: Assembler messages: x86_64cpuid.s:2: Error: unknown
 pseudo-op: `.private_extern' x86_64cpuid.s:3: Error: unknown
 pseudo-op: `.mod_init_func' x86_64cpuid.s:7: Error: unknown pseudo-op:
 `.private_extern' make[1]: *** [<builtin>: x86_64cpuid.o] Error 1
 make[1]: Leaving directory
 '/tmp/opensslA1.0-20211213-493929-qg8eui/openssl-1.0.2t/crypto' make:
 *** [Makefile:287: build_crypto] Error 1
   
 If reporting this issue please do so at (not Homebrew/brew or
 Homebrew/core):   https://github.com/rbenv/homebrew-tap/issues 
 These open issues may also help: `brew install rbenv/tap/openssl@1.0` not working anymore https://github.com/rbenv/homebrew-tap/issues/1

Я перешел по ссылке в сообщении об ошибке и попробовал совет:

      ~$ brew tap rbenv/tap

~$ brew install rbenv/tap/openssl@1.0

x86_64cpuid.s: Assembler messages:
x86_64cpuid.s:2: Error: unknown pseudo-op: `.private_extern'
x86_64cpuid.s:3: Error: unknown pseudo-op: `.mod_init_func'
x86_64cpuid.s:7: Error: unknown pseudo-op: `.private_extern'
make[1]: *** [<builtin>: x86_64cpuid.o] Error 1
make[1]: Leaving directory '/tmp/opensslA1.0-20211213-498635-w2ky1d/openssl-1.0.2t/crypto'
make: *** [Makefile:287: build_crypto] Error 1

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/rbenv/homebrew-tap/issues

These open issues may also help:
`brew install rbenv/tap/openssl@1.0` not working anymore https://github.com/rbenv/homebrew-tap/issues/1

Я также попытался обновить версию ruby ​​приложения и продолжаю сталкиваться с ошибками, такими как устаревшие зависимости. Я новичок в Ruby и Rails и все еще учусь!

Это мой первый пост, поэтому извиняюсь, если он плохой или я пропустил некоторые детали. Я рад предоставить любую дополнительную информацию.

Большое вам спасибо за вашу помощь.

1 ответ

Благодаря помощи @Casper я решил проблему.

В последних выпусках Ubuntu rbenv не удается установить Ruby ниже 2.4 из-за несоответствия зависимости OpenSSL.

Проблема была решена для меня с помощью версии Ubuntu 16.04, установленной на другом компьютере.

Другие вопросы по тегам