ruby - 无法使用 ruby​​ 2.1.2 构建 native 扩展

标签 ruby ubuntu ruby-2.0 ruby-2.1

我在 Ubuntu 14.04.1 LTS (Trusty) 上。
我使用 rvm 1.25.28(稳定)。
当我想安装作为 native 扩展的 gem 时,它会失败并显示 ruby-2.1.2但适用于 ruby-2.0.0-p481 .

我找不到与我的问题(make: .//install: Command not found)类似的任何内容。
this帖子,但我有 install命令,以及 make安装在我的系统上。

我不知道我能做些什么来享受 ruby​​-2.1.2。

以下是我在我的任期内使用两颗 ruby 得到的结果。

ruby 2.0.0p481(2014-05-08 修订版 45883)[x86_64-linux]

➜  webinterface git:(master) ✗ gem install bcrypt -v '3.1.7'

Building native extensions.  This could take a while...
Successfully installed bcrypt-3.1.7
Parsing documentation for bcrypt-3.1.7
Installing ri documentation for bcrypt-3.1.7
Done installing documentation for bcrypt after 1 seconds
1 gem installed
➜  webinterface git:(master) ✗ 

ruby 2.1.2p95(2014-05-08 修订版 45877)[x86_64-linux]
➜  webinterface git:(master) ✗ gem install bcrypt -v '3.1.7'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt:
    ERROR: Failed to build gem native extension.

    /home/micka/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
checking for ruby/util.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling wrapper.c
compiling crypt.c
compiling crypt_gensalt.c
compiling crypt_blowfish.c
compiling bcrypt_ext.c
linking shared-object bcrypt_ext.so

make "DESTDIR=" install
.//install -m 0755 bcrypt_ext.so ./.gem.20140830-16619-1u6zgae
make: .//install: Command not found
make: *** [install-so] Error 127

make install failed, exit code 2

Gem files will remain installed in /home/micka/.rvm/gems/ruby-2.1.2/gems/bcrypt-3.1.7 for inspection.
Results logged to /home/micka/.rvm/gems/ruby-2.1.2/extensions/x86_64-linux/2.1.0/bcrypt-3.1.7/gem_make.out
➜  webinterface git:(master) ✗ 

编辑
gem --version : 2.2.2
这是我的环境
➜  webinterface git:(master) ✗ env
SESSION_MANAGER=local/micka-VirtualBox:@/tmp/.ICE-unix/1450,unix/micka-VirtualBox:/tmp/.ICE-unix/1450
XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/usr/share/upstart/xdg:/etc/xdg
LC_TELEPHONE=fr_FR.UTF-8
SESSION=gnome
LANG=en_US.UTF-8
DISPLAY=:0
XDG_VTNR=7
LOGNAME=micka
PWD=/home/micka/Documents/getthejobsforme/src/webinterface
MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
LC_NAME=fr_FR.UTF-8
GPG_AGENT_INFO=/run/user/1000/keyring-D7wxoa/gpg:0:1
XDG_MENU_PREFIX=gnome-
XAUTHORITY=/var/run/gdm/auth-for-micka-vY5EwB/database
GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/guake.desktop
GTK_IM_MODULE=ibus
SELINUX_INIT=YES
XDG_SESSION_ID=c1
DESKTOP_SESSION=gnome
IM_CONFIG_PHASE=1
DEFAULTS_PATH=/usr/share/gconf/gnome.default.path
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
USERNAME=micka
TEXTDOMAIN=im-config
WINDOWPATH=7
LC_MEASUREMENT=fr_FR.UTF-8
LC_PAPER=fr_FR.UTF-8
GDMSESSION=gnome
LC_MONETARY=fr_FR.UTF-8
GIO_LAUNCHED_DESKTOP_FILE_PID=2208
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dKhP53slle
TEXTDOMAINDIR=/usr/share/locale/
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
LC_IDENTIFICATION=fr_FR.UTF-8
SESSIONTYPE=gnome-session
QT4_IM_MODULE=xim
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1085
SSH_AGENT_LAUNCHER=upstart
CLUTTER_IM_MODULE=xim
GDM_LANG=en_US
SHELL=/bin/zsh
GJS_DEBUG_OUTPUT=stderr
LC_TIME=fr_FR.UTF-8
JOB=dbus
SSH_AGENT_PID=1339
QT_IM_MODULE=ibus
XDG_CURRENT_DESKTOP=GNOME
SSH_AUTH_SOCK=/run/user/1000/keyring-D7wxoa/ssh
PATH=/home/micka/.rvm/gems/ruby-2.1.2/bin:/home/micka/.rvm/gems/ruby-2.1.2@global/bin:/home/micka/.rvm/rubies/ruby-2.1.2/bin:/home/micka/.rvm/bin:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
GNOME_KEYRING_CONTROL=/run/user/1000/keyring-D7wxoa
TERM=xterm
HOME=/home/micka
XDG_SEAT=seat0
INSTANCE=
XDG_RUNTIME_DIR=/run/user/1000
LC_ADDRESS=fr_FR.UTF-8
XMODIFIERS=@im=ibus
USER=micka
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
LC_NUMERIC=fr_FR.UTF-8
SHLVL=1
OLDPWD=/home/micka/Documents/getthejobsforme/src/webinterface/config
ZSH=/home/micka/.oh-my-zsh
GREP_OPTIONS=--color=auto --exclude-dir=.cvs --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn
GREP_COLOR=1;32
PAGER=less
LESS=-R
LC_CTYPE=en_US.UTF-8
LSCOLORS=Gxfxcxdxbxegedabagacad
rvm_prefix=/home/micka
rvm_path=/home/micka/.rvm
rvm_bin_path=/home/micka/.rvm/bin
rvm_version=1.25.28 (stable)
GEM_HOME=/home/micka/.rvm/gems/ruby-2.1.2
GEM_PATH=/home/micka/.rvm/gems/ruby-2.1.2:/home/micka/.rvm/gems/ruby-2.1.2@global
MY_RUBY_HOME=/home/micka/.rvm/rubies/ruby-2.1.2
IRBRC=/home/micka/.rvm/rubies/ruby-2.1.2/.irbrc
RUBY_VERSION=ruby-2.1.2
rvm_alias_expanded=
rvm_docs_type=
rvm_gemstone_package_file=
rvm_gemstone_url=
rvm_niceness=
rvm_nightly_flag=
rvm_proxy=
rvm_quiet_flag=
rvm_ruby_file=
rvm_ruby_make=
rvm_ruby_make_install=
rvm_ruby_mode=
rvm_script_name=
rvm_sdk=
rvm_silent_flag=
rvm_wrapper_name=
install_flag=1
_system_type=Linux
_system_name=Ubuntu
_system_version=14.04
_system_arch=x86_64
rvm_bin_flag=
rvm_delete_flag=0
rvm_file_name=
rvm_only_path_flag=
rvm_ruby_alias=
rvm_ruby_bits=
rvm_sticky_flag=
rvm_system_flag=
rvm_use_flag=
rvm_user_flag=
rvm_ruby_string=ruby-2.1.2
_=/usr/bin/env
➜  webinterface git:(master) ✗ 

编辑(2)

我使用 gem update --system 更新了我的 gem至2.4.1 .但这并不能解决问题。

编辑(3)
➜  webinterface git:(master) ✗ irb
 :001 > RbConfig::CONFIG['INSTALL_PROGRAM']
 => ".//install" 
 :002 > RbConfig::MAKEFILE_CONFIG['INSTALL_PROGRAM']
 => "$(INSTALL)" 
 :003 > 
➜  webinterface git:(master) ✗ which install
/usr/bin/install
➜  webinterface git:(master) ✗ 

最佳答案

因为我认为问题与此错误有关 make: .//install: Command not found .
不知为何RbConfig::CONFIG['INSTALL_PROGRAM']设置为 ".//install" .

由于RbConfig::MAKEFILE_CONFIG['INSTALL_PROGRAM']设置为 "$(INSTALL)" , 我试过 EXPORT INSTALL=/usr/bin/install但它没有用。

我通过卸载 ruby​​-2.1.2 并再次安装它确保我没有 INSTALL 解决了这个问题在我的环境中设置为一些随机值。

rvm uninstall 2.1.2
unset INSTALL
rvm install 2.1.2

关于ruby - 无法使用 ruby​​ 2.1.2 构建 native 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581060/

相关文章:

ruby-on-rails - 升级到 ruby​​ 2.0.0-p247 和 rails 4.0.0

ruby - 如何在 ruby​​ 测试中正确使用正则表达式

ruby - 错误 : Installing vagrant gem in ruby 2. 0.0

ruby - 使用 RVM 本地 gemset 和使用 Bundle exec 之间有区别吗?

c++ - Qt - qstring.h 包含字符串错误

linux - RVM 源作为 sudo?

ubuntu - 如何解决此错误?错误 : failed to create deliver client: failed to create new connection: context deadline exceeded

ruby - 为什么 "each"-ing 范围仅适用于递增范围?

ruby-on-rails - rails 3 : Uniqueness validation for nested fields_for - Part2

ruby-on-rails - 显示日期时间,如 1 小时前、5 小时前、3 天前、