相关文章推荐
喝醉的米饭  ·  ValueError: Number of ...·  1 年前    · 

上午,莫名其妙的rails app不能用了,rails -v一查发现不存在。ruby -v发现是2.0的版本。很着急上火,因为很少使用过r vm这个ruby版本控制器。 所以照官网文档。从新安装ruby,然后发现还是rail没有安装,后来决定从新安装rails。

在document/upgrade 发现一条命令

$ rvm gemset update

可以全部更新gem。于是我就更新了,rails app也可以用了。这就是悲剧的开始😢😢😢。

下午,从开了一个rails app准备练习一下缓存。结果发现rails的命令 在编译器根本不动,连 rails -h 都很慢。

查找谷歌没答案,stack overflow找到一条类似问题,没有加🌟的回答,看了一下评论疑似gem安装太多的话会让程序变慢。

于是我想到了上午自动更新gem的命令。

先尝试更好当前使用的ruby版本,使用 rvm default use 2.4.0 但仍然很慢.

于是看官网操作,准备删除所有安装的gem.不过不明白empty和delete的区别。

先尝试empty。 用 rvm gemset empty, 提示满屏幕的uninstalled XXX。果然全部删除了,但保留了这个gemset。 ✅,rails 实现编译器命令,速度正常了。

后来使用 rvm gemset create my_set 建立了一个新的gemset。然后使用 rvm gemset delete my_set 删除了这个目录。

⚠️,可以建立不同的gemset,对于不同的项目。

啊啊啊❌,又不行了rails generate -h 超慢。

祭出大招,rvm remove ruby-2.31和之前的版本,然后再次 rvm gemset empty.

老问题:但还是很慢。无语了。此时是下午4点

彻底删除ruby再从新安装又报告错误,安装不了。删除rvm, 删除命令:rvm implode(不会很干净,我怕影响后续安装ruby,还查找方法试图干净删除)。

可是安装完rvm后,安装ruby,还是报告错误❌,此时的我还没有学会仔细看报错的内容。

看ruby-china上的解决办法,各类网页。此时已是下午6点。

⚠️关键是,没有遇到和我完全一样的错误,别人的错误的解决方法不适合我。

此时的我已经学会了 看隐藏文件使用command+shift+. , 学会了看日志.make.log。并对比自己的问题和他人的问题。就是找一样的解决方法。

晚上7点多吃完晚饭。 抑郁。网上有说可能是编译的问题,而编译问题一般是xcode的问题,尝试 xcode-select --install ,没用不是这个地方的问题

在ruby-China上继续浏览相关文章。发现一篇文章提示,应该把关键的错误信息粘体到谷歌上面,任何问题都有答案,我尝试一下把。

在.rvm/log/../make.log中:

+__rvm_make:0> make -j4
CC = gcc
LD = ld
LDSHARED = gcc -dynamiclib
CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens   -fno-common -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -I. -I.ext/include/x86_64-darwin16 -I./include -I. -I./enc/unicode/10.0.0
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl@1.1/lib -install_name /Users/chentianwei/.rvm/rubies/ruby-2.5.1/lib/libruby.2.5.dylib -compatibility_version 2.5 -current_version 2.5.1  -fstack-protector -framework Foundation  -fstack-protector -framework Foundation
SOLIBS = -lpthread -ldl -lobjc
LANG =
LC_ALL =
LC_CTYPE = UTF-8
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
compiling ./main.c
compiling dmydln.c
compiling miniinit.c
compiling dmyext.c
compiling miniprelude.c
translating probes probes.d
compiling bignum.c
compiling class.c
compiling compar.c
error: error reading '/dev/fd/8'
1 error generated.
clang: error: unable to remove file: Operation not permitted
dtrace: failed to compile script probes.d: Preprocessor failed to process input program
make: *** [probes.h] Error 1
make: *** Waiting for unfinished jobs....
+__rvm_make:0> return 2

error: error reading '/dev/fd/8' 放到谷歌上查找: 竟然第一条就是解决办法!!! https://github.com/rvm/rvm/issues/4313

答案是: I have had a similar problem "error: error reading '/dev/fd/7'". In my case it helped to deactivate the antivirus software Avira.使反病毒程序小红伞无效。惊人!!!杀毒软件,😢。