有没有人知道如何部署到服务器并在用户目录中安装本机扩展?
我正在使用capistrano和bundler,并且没有对/ usr / local的写访问权限...具有Native扩展名的Gems(在当前情况下为bcrypt-ruby)不会安装。我最初的问题是无法找到“config.h。”
在对生成的Makefile进行一些调查时,这一行是罪魁祸首:
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
Mkmf以这种方式定义arch_hdrdir:
arch_hdrdir = $(extout)/include/$(arch)
为什么这样做有点莫名其妙。不幸的是,$ extout是“”,因此,Make正在/include/i686-linux/ruby/config.h中查找配置并失败。
对mkmf的进一步调查让我认为$ extout被设置为在install_dirs中评估为true的东西,但最终成为makefile中的空字符串。但是,我无法弄清楚它的设定位置。
为了解决问题,我尝试在extconf.rb中设置$ extout。但...
1)如果我将它设置为'/ usr / local / lib / ruby',makefile会尝试将.so安装到/ usr / local / lib / ruby ...我没有写访问权限。嘘声。
2)我尝试将$ extout设置为'/ home / crivens / railsapp / shared / bundle'。这实际上编译,但然后应用程序找不到.so文件。我不得不做一堆黑客到达那里。
花了很多时间在这之后,我正在寻找建议!
提前致谢。
答案 0 :(得分:1)
我认为您正在寻找的是ruby版本管理器(rvm)。它可以在这里使用,并允许您管理Ruby,Rails和Gem集的版本。
这里有一个很好的入门指南:http://rvm.beginrescueend.com/rvm/install/
[sam@mungr ~]$ \curl -L https://get.rvm.io | bash -s stable --ruby
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10956 100 10956 0 0 2240 0 0:00:04 0:00:04 --:--:-- 2240
Please read and follow further instructions.
Press ENTER to continue.
Downloading RVM from wayneeseguin branch stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1243k 100 1243k 0 0 570k 0 0:00:02 0:00:02 --:--:-- 929k
Installing RVM to /home/sam/.rvm/
Adding rvm PATH line to /home/sam/.bashrc /home/sam/.zshrc.
Adding rvm loading line to /home/sam/.bash_profile /home/sam/.zprofile.
# RVM: Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm
# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'
Installation of RVM in /home/sam/.rvm/ is almost complete:
* To start using RVM you need to run `source /home/sam/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
# sam,
#
# Thank you for using RVM!
# I sincerely hope that RVM helps to make your life easier and
# more enjoyable!!!
#
# ~Wayne
rvm 1.17.7 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
No binary rubies available for: downloads/ruby-1.9.3-p362.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Fetching yaml-0.1.4.tar.gz to /home/sam/.rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 460k 100 460k 0 0 342k 0 0:00:01 0:00:01 --:--:-- 492k
Extracting yaml to /home/sam/.rvm/src/yaml-0.1.4
Configuring yaml in /home/sam/.rvm/src/yaml-0.1.4.
Compiling yaml in /home/sam/.rvm/src/yaml-0.1.4.
Installing yaml to /home/sam/.rvm/usr
Installing Ruby from source to: /home/sam/.rvm/rubies/ruby-1.9.3-p362, this may take a while depending on your cpu(s)...
ruby-1.9.3-p362 - #downloading ruby-1.9.3-p362, this may take a while depending on your connection...
ruby-1.9.3-p362 - #extracting ruby-1.9.3-p362 to /home/sam/.rvm/src/ruby-1.9.3-p362
ruby-1.9.3-p362 - #extracted to /home/sam/.rvm/src/ruby-1.9.3-p362
ruby-1.9.3-p362 - #configuring
ruby-1.9.3-p362 - #compiling
ruby-1.9.3-p362 - #installing
Retrieving rubygems-1.8.24
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 371k 100 371k 0 0 430k 0 --:--:-- --:--:-- --:--:-- 611k
Extracting rubygems-1.8.24 ...
Removing old Rubygems files...
Installing rubygems-1.8.24 for ruby-1.9.3-p362 ...
Installation of rubygems completed successfully.
Saving wrappers to '/home/sam/.rvm/bin'.
ruby-1.9.3-p362 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p362 - #importing default gemsets (/home/sam/.rvm/gemsets/), this may take time ...
Install of ruby-1.9.3-p362 - #complete
Creating alias default for ruby-1.9.3-p362.
Recording alias default for ruby-1.9.3-p362.
Creating default links/files
Saving wrappers to '/home/sam/.rvm/bin'.
* To start using RVM you need to run `source /home/sam/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
[sam@mungr ~]$ source /home/sam/.rvm/scripts/rvm
[sam@mungr ~]$ rvm list
rvm rubies
=* ruby-1.9.3-p362 [ x86_64 ]
# => - current
# =* - current && default
# * - default
[sam@mungr ~]$ which ruby
~/.rvm/rubies/ruby-1.9.3-p362/bin/ruby
[sam@mungr ~]$ ruby -e "puts 'Hello world'"
Hello world
通过讨论这个问题的过程,作者Crivens注意到他收到了以下错误:
错误卷曲:(77)SSL CA证书问题(路径?访问权限?) OS是Linux版本2.6.32-042stab055.16(root @ rh6-build-x64)(gcc 版本4.4.4 20100726(Red Hat 4.4.4-13)(GCC))#1 SMP Fri Jun 8 19:22:28 MSD 2012.我仍然希望使用ruby的系统安装。
如果您遇到此错误,通常意味着以下两种情况之一:
1。我认为你刚刚错过了这个RPM,ca-certificates-2010.63-3.el6。这些是证书。 My install of RVM on a Ubuntu 8.04.4 machine fails. Should I install it as multi-user instead?
% yum install ca-certificates-2010.63-3.el6
2。 rvm的开发人员,Wayne,将URL从rvm.beginrescueend.com更改为rvm.io,并且可能已经推出了SSL证书。 Curl Certificate Error when Using RVM to install Ruby 1.9.2
% curl -L get.rvm.io | bash -s stable
-or-
% echo insecure > ~/.curlrc
答案 1 :(得分:0)
如果您不想出于任何原因在服务器中安装RVM或rbenv,您仍然可以使用具有权限(root?)权限的用户从服务器安装gem,使用:
gem install bcrypt-ruby --install-dir /path/to/deploy/shared/bundle/ruby/1.9.1/`
之后,捆绑将只接受那个宝石。当然,如果您更新Gemfile
中的gem,则应重复此操作。