简体   繁体   中英

Can't build native extensions with ruby 2.1.2

I'm on Ubuntu 14.04.1 LTS (Trusty).
I use rvm 1.25.28 (stable).
When I want to install a gem that is a native extension, it fails with ruby-2.1.2 but works fine with ruby-2.0.0-p481 .

I can't find anything similar to my issue ( make: .//install: Command not found ).
there is this post, but I have the install command, as well as make installed on my system.

I don't know what I can do to enjoy ruby-2.1.2.

The following is what I get in my term with both rubies.

ruby 2.0.0p481 (2014-05-08 revision 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 revision 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) ✗ 

EDIT

gem --version : 2.2.2

This is my env

➜  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) ✗ 

EDIT(2)

I updated my gem using gem update --system to 2.4.1 . But it doesn't fix the issue.

EDIT(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) ✗ 

As I though the problem was related to this error make: .//install: Command not found .
For some obscure reason RbConfig::CONFIG['INSTALL_PROGRAM'] was set to ".//install" .

Since RbConfig::MAKEFILE_CONFIG['INSTALL_PROGRAM'] is set to "$(INSTALL)" , I tried to EXPORT INSTALL=/usr/bin/install but it didn't work.

I fixed the issue by uninstalling ruby-2.1.2 and installing it again making sure I didn't have INSTALL in my env set to some random values.

rvm uninstall 2.1.2
unset INSTALL
rvm install 2.1.2

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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