无法安装 Ruby,我之前使用过以下命令行:
sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
exec zsh
谢谢尝试运行:rbenv install 3.0.3
但不断出现这个错误:
Downloading ruby-3.0.3.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.3.tar.gz
error: failed to download ruby-3.0.3.tar.gz
BUILD FAILED (Ubuntu 20.04 using ruby-build 20220324)
答案1
显然,Ubuntu 及其较新的衍生产品都带有 OpenSSL 3.0,而 Ruby 3.1 之前的版本使用的是 OpenSSL 1.1
在这种情况下,最安全的选择是按照用户手册并手动编译 OpenSSL 1.1。
我也使用 Pop!_OS 和 asdf 来解决这个问题
PS: 我把导出放在了我的 .zshrc 中
安装依赖项:
sudo apt install build-essential checkinstall zlib1g-dev
下载 OpenSSL 1.1.1:
cd ~/Downloads
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz
tar xf openssl-1.1.1n.tar.gz
编译它:
cd ~/Downloads/openssl-1.1.1n
./config --prefix=/opt/openssl-1.1.1n --openssldir=/opt/openssl-1.1.1n shared zlib
make
make test
sudo make install
将系统的证书链接到 OpenSSL 1.1.1 目录:
sudo rm -rf /opt/openssl-1.1.1n/certs
sudo ln -s /etc/ssl/certs /opt/openssl-1.1.1n
在命令前使用 RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1n 来安装 ruby 版本:
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1n rbenv install 2.7.6
如果您想使其永久生效,请将此行添加到您的 .bashrc 或 .zshrc 文件中:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/openssl-1.1.1n/"
那么您不再需要在命令前使用 RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1n。
字体: https://github.com/rbenv/ruby-build/discussions/1940#discussioncomment-2663209
答案2
对于 ruby-build 20240119 你需要执行以下操作:
#对于'构建失败(Ubuntu 22.04 在 x86_64 上使用 ruby-build 20240119)'
:~$ sudo apt install \
build-essential libxml2 libssl-dev libffi-dev \
libffi8 libyaml-dev libreadline-dev
然后:
asdf install ruby 3.2.3
答案3
安装比 Ubunturbenv
包更新的 Ruby 和 Ruby 环境。
sudo apt install rbenv
rbenv install -l | grep VERSION
检查您喜欢的版本是否可用。
如果不是,您可以从 git 更新最新列表并ruby
预先删除 ubuntu 的包(为了简单起见)。
cd $HOME
git clone https://github.com/sstephenson/rbenv.git .rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
检查可用的版本。在安装新环境之前,您必须告诉 shell 一个新路径
在末尾添加此代码.bash_profile
# For rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(~/.rbenv/bin/rbenv init -)"
重新启动终端或source .bash_profile
如果路径rbenv
正确设置which rbenv
,它会回复/home/USER/.rbenv/bin/rbenv
rbenv install VERSION
rbenv rehash
rbenv global VERSION
确认
$ ruby -v
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-linux]
$ which ruby
/home/USER/.rbenv/shims/ruby