Ошибка установки rbenv после обновления до Ubuntu 22.04 (Jammy Jellyfish)
После обновления до Ubuntu 22.04 (Jammy Jellyfish) я заметил проблемы с Ruby 2.7.2, поэтому попытался установить 2.7.2, а когда это не удалось, 2.7.6, что также не удалось с той же ошибкой:
$ rbenv install 2.7.6
Downloading ruby-2.7.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.6.tar.bz2
Installing ruby-2.7.6...
BUILD FAILED (Ubuntu 22.04 using ruby-build 20220426)
Inspect or clean up the working tree at /tmp/ruby-build.20220428104457.2389.OeOKU9
Results logged to /tmp/ruby-build.20220428104457.2389.log
Last 10 log lines:
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:373: do-install-all] Error 1
Текущая версия устанавливает:
$ rbenv install 3.1.2
Downloading ruby-3.1.2.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.gz
Installing ruby-3.1.2...
Installed ruby-3.1.2 to /home/mslinn/.rbenv/versions/3.1.2
Предложения по установке Ruby 2.7.x на Jammy Jellyfish?
1 ответ
Ваша проблема в том, что Ubuntu 22.04 поставляется с OpenSSL 3.0, но сообщение об ошибке в вашем журнале сборки гласит:
OpenSSL >= 1.0.1, < 3.0.0 or LibreSSL >= 2.5.0 is required
Чтобы исправить это, вам нужно скомпилировать OpenSSL самостоятельно. См. инструкции ниже.
Основываясь на этой информации, я бы подумал, что самым безопасным способом сборки Ruby на Ubuntu 22.04 будет: вместо того, чтобы зависеть от системного пакета libssl-dev, загрузить и скомпилировать OpenSSL 1.1.1 в свой собственный каталог, а затем указать на этот каталог с помощью
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/path/to/my/openssl
при компиляции с помощью ruby-build .
Ответ был найден здесь:
https://github.com/rbenv/ruby-build/discussions/1940