繁体   English   中英

在 Ubuntu 18.04 上安装 Ruby 2.3.x 在安装过程结束时会导致错误

[英]Installing Ruby 2.3.x on Ubuntu 18.04 is causing an error by the end of the installation process

我最近将我的系统更新到了 Ubuntu 18.04 LTS,从那时起,Ruby 版本似乎已经更新到了 2.5。 问题是,当尝试部署使用 Capistrano 的项目时,它现在会抱怨找不到 Ruby 2.3。

它在运行rvm install 2.3<\/code>时尝试安装的版本是 2.3.4,显示的第一个错误是“ Error running '__rvm_make -j4'<\/code> ”。 我尝试删除 RVM 并再次安装,但没有解决这个问题。 日志是一个巨大的文件,它什么也没告诉我。

然后,我尝试使用rbenv<\/code> ,这也会导致错误:

Installing ruby-2.3.4...

BUILD FAILED (Ubuntu 18.04 using ruby-build 20180424)

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

Last 10 log lines:
installing default nkf libraries
linking shared-object objspace.so
make[2]: Leaving directory '/tmp/ruby-build.20180429172721.16258/ruby-2.3.4/ext/objspace'
linking shared-object pathname.so
make[2]: Leaving directory '/tmp/ruby-build.20180429172721.16258/ruby-2.3.4/ext/pathname'
linking shared-object nkf.so
make[2]: Leaving directory '/tmp/ruby-build.20180429172721.16258/ruby-2.3.4/ext/nkf'
make[1]: Leaving directory '/tmp/ruby-build.20180429172721.16258/ruby-2.3.4'
uncommon.mk:203: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2

我遇到了同样的问题,尽管似乎问题出在gcc ,但就我而言,问题出在libssl-dev ,这对我有帮助:

sudo apt purge libssl-dev && sudo apt install libssl1.0-dev

我使用rbenv 如果您使用rvm ,您可能会在运行上一个命令后遇到问题:

/usr/share/rvm/scripts/base: No such file or directory

我建议尝试rbenv 安装libssl1.0-dev ,一切都完美无缺。

cd ~/src
 wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
 tar xvzf openssl-1.0.2s.tar.gz
 cd openssl-1.0.2s
 mkdir ~/.rubies/openssl-1.0.2s
 ./config --prefix=$HOME/.rubies/openssl-1.0.2s --shared
 make
 make install
 RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.rubies/openssl-1.0.2s rbenv install 2.3.1

为我工作

让它也与 RVM 一起工作:

1. sudo apt purge libssl-dev && sudo apt install libssl1.0-dev 2. rvm install 2.3.5 --autolibs=disable

您必须手动安装 RVM 依赖项,否则,在启用自动库的情况下,RVM 将尝试更新系统依赖项以及 libssl-dev(您在第一步中降级的)。 如果您不想手动安装依赖项,您可以尝试在启用 autolibs 的情况下安装 Ruby,安装将失败,此时您已经安装了依赖项,因此您可以从第 1 步开始重复所有操作来降级 libssl。

通过更新 rvm rvm get head解决了这个问题

为了在 Ubuntu 20.04 上安装 libssl-dev。 使用这个命令来做到这一点。 它对我sudo apt install libssl-dev/focalsudo apt install libssl-dev/focal

我有一个类似的问题。 显然,ruby 版本 < 2.3 与最新版本的 Ubuntu 附带的 openssl 1.1 不兼容。 在这里我找到了ArchLinux的解决方案,我尝试了这个解决方案并且 ruby​​ 编译得很好,但是我在 rails 中有很多内存错误,然后我现在唯一的解决方案是使用 ruby​​ > 2.4,直到我找到其他解决方案。

OpenSSL 1.1 与 Ruby 2.3.x 不兼容,请在此处查看此问题

我使用以下命令解决了 mac 上的问题。

rvm reinstall ruby-2.3.8 --with-openssl-dir=`brew --prefix openssl@1.0` --debug

您可以通过安装openssl@1.0以类似的方式为 ubuntu 解决它

用 rvm 试试这个

rvm install ruby-2.3.4

或者试试https://gorails.com/setup/ubuntu/18.04

您可能缺少所需的库,因此请先尝试运行这些库:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs yarn

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM