修复debian中的ruby gems路径问题

时间:2013-09-03 07:43:18

标签: ruby linux gem debian

我一直在撞墙,试图修复红宝石宝石的路径但没有成功。这是我的问题。在运行Debian GNU/Linux 6.0.6 (squeeze)的生产服务器中,我安装了ruby1.8.7,ruby1.9.1和jruby。由于某些原因,gem install使用jruby gems目录而不是ruby gems目录,这意味着我无法运行依赖于已安装的ruby gems的ruby程序。我试图使用

导出ruby gem PATH
export PATH=/var/lib/gems/1.8/bin:$PATH

但没有改变。

这是我的.bashrc文件

# ~/.bashrc: executed by bash(1) for non-login shells.

export PS1='\h:\w\$ '
umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

JAVA_HOME=/usr/bin/jdk1.6.0_21/
PATH="/usr/bin/jdk1.6.0_21/bin:$PATH"
PATH="$PATH:/opt/jruby/bin/"
export PATH
export GEM_PATH=/usr/lib/ruby/gems/1.8

环境

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.6 (squeeze)
Release:    6.0.6
Codename:   squeeze


gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.16
  - RUBY VERSION: 1.8.7 (2011-12-27 patchlevel 330) [java]
  - INSTALLATION DIRECTORY: /opt/jruby/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/jruby/bin/jruby
  - EXECUTABLE DIRECTORY: /opt/jruby/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-java-1.6
  - GEM PATHS:
     - /opt/jruby/lib/ruby/gems/1.8
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--no-rdoc --no-ri --env-shebang"
     - "update" => "--no-rdoc --no-ri --env-shebang"
  - REMOTE SOURCES:
     - http://rubygems.org/


which ruby
/usr/bin/ruby

which gem
/opt/jruby/bin//gem

这是我在运行ruby文件时遇到的错误

usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- net/https (LoadError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'

我一直在努力改变这一点,但没有运气。如何在Debian上更改gem路径?

1 个答案:

答案 0 :(得分:0)

您使用的是RVM / rbenv等版本管理器吗?他们实现自定义路径修改。

您知道自己正在使用哪个用户以及是否使用sudo?这当然也会对路径解释产生巨大影响。

试试这个:导航到每个Ruby实现的实际Bin文件夹,然后在那里运行gem env命令。这具有使用Ruby的本地化版本运行命令的效果(因此在大多数情况下也是RubyGems)。这对诊断这些类型的问题非常有帮助。

例如:

cd /some_path/Ruby-1.9.1/bin

gem env