gam*_*ofe 10 ruby ruby-2.3 ubuntu-18.04
我最近将我的系统更新到Ubuntu 18.04 LTS,从那时起,Ruby版本似乎已经更新到2.5.问题在于,当尝试部署使用Capistrano的项目时,它现在会抱怨找不到Ruby 2.3.
它在运行时尝试安装的版本rvm install 2.3
是2.3.4,显示的第一个错误是" Error running '__rvm_make -j4'
".我尝试删除RVM并再次安装,但没有解决这个问题.日志是一个巨大的文件,它什么也没告诉我.
然后,我尝试使用rbenv
,这也导致错误:
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
Run Code Online (Sandbox Code Playgroud)
日志文件也有一个愚蠢的巨型日志文件.
下一次尝试是从源安装,make
在文件夹中运行后,错误:
openssl_missing.h:78:35: error: macro "EVP_MD_CTX_create" passed 1 arguments, but takes just 0
EVP_MD_CTX *EVP_MD_CTX_create(void);
^
In file included from /usr/include/openssl/x509.h:23:0,
from /usr/include/openssl/x509_vfy.h:17,
from openssl_missing.c:15:
openssl_missing.h:82:6: error: expected declaration specifiers or ‘...’ before ‘(’ token
void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
^
openssl_missing.h:90:6: error: expected declaration specifiers or ‘...’ before ‘(’ token
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
^
openssl_missing.c:39:23: error: macro "EVP_MD_CTX_create" passed 1 arguments, but takes just 0
EVP_MD_CTX_create(void)
^
openssl_missing.c:40:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
{
^
openssl_missing.c: In function ‘EVP_MD_CTX_cleanup’:
openssl_missing.c:55:27: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX {aka struct evp_md_ctx_st}’
memset(ctx, 0, sizeof(EVP_MD_CTX));
^~~~~~~~~~
In file included from /usr/include/openssl/x509.h:23:0,
from /usr/include/openssl/x509_vfy.h:17,
from openssl_missing.c:15:
openssl_missing.c: At top level:
openssl_missing.c:63:1: error: expected declaration specifiers or ‘...’ before ‘(’ token
EVP_MD_CTX_destroy(EVP_MD_CTX *ctx)
^
openssl_missing.c:72:1: error: expected declaration specifiers or ‘...’ before ‘(’ token
EVP_MD_CTX_init(EVP_MD_CTX *ctx)
^
openssl_missing.c: In function ‘HMAC_CTX_init’:
openssl_missing.c:82:25: error: dereferencing pointer to incomplete type ‘HMAC_CTX {aka struct hmac_ctx_st}’
EVP_MD_CTX_init(&ctx->i_ctx);
^
openssl_missing.c: In function ‘HMAC_CTX_cleanup’:
openssl_missing.c:95:27: error: invalid application of ‘sizeof’ to incomplete type ‘HMAC_CTX {aka struct hmac_ctx_st}’
memset(ctx, 0, sizeof(HMAC_CTX));
^~~~~~~~
Makefile:301: recipe for target 'openssl_missing.o' failed
make[2]: *** [openssl_missing.o] Error 1
make[2]: Leaving directory '/home/gabriel/Downloads/ruby-2.3.7/ext/openssl'
exts.mk:212: recipe for target 'ext/openssl/all' failed
make[1]: *** [ext/openssl/all] Error 2
make[1]: Leaving directory '/home/gabriel/Downloads/ruby-2.3.7'
uncommon.mk:203: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2
Run Code Online (Sandbox Code Playgroud)
安装它有什么作用?或者不可能再安装这些旧版本?
gui*_*man 40
我有同样的问题,虽然看起来有问题,但gcc
在我的情况下问题出现了libssl-dev
,这对我有什么帮助:
sudo apt purge libssl-dev && sudo apt install libssl1.0-dev
Run Code Online (Sandbox Code Playgroud)
我用rbenv
.如果使用rvm
,运行上一个命令后可能遇到问题:
/usr/share/rvm/scripts/base: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我建议尝试rbenv
.安装后libssl1.0-dev
,一切都完美无瑕.
Ste*_*fan 10
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
Run Code Online (Sandbox Code Playgroud)
为我工作
让它也与 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。
lac*_*der -1
用rvm试试这个
rvm install ruby-2.3.4
Run Code Online (Sandbox Code Playgroud)
或者尝试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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8965 次 |
最近记录: |