2013-09-03 2 views
0

루비 보석 경로를 고치려고 벽에 머리를 두드리는 소리가났습니다. 여기 내 문제가있다. Debian GNU/Linux 6.0.6 (squeeze) 실행중인 내 프로덕션 서버에는 ruby1.8.7, ruby1.9.1 및 jruby가 모두 설치되어 있습니다. 몇 가지 이유로 gem install은 jruby gems 디렉토리를 사용하고 ruby ​​gems 디렉토리를 사용하지 않기 때문에 설치된 루비 보석에 의존하는 루비 프로그램을 실행할 수 없습니다. 나는데비안에서 루비 보석 경로 문제 수정

export PATH=/var/lib/gems/1.8/bin:$PATH 

을 사용하여 루비 보석 PATH를 내보내려고했지만 아무 것도 변경되지 않았습니다. 여기

내가 변화에 고전을 면치 못하고 한

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' 

루비 파일을 실행하는 동안 오류 받고 있어요 여기

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 

환경

.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 

입니다 그것은 운이 없다. 데비안에서 보석 경로를 변경하려면 어떻게해야합니까?

답변

0

RVM/rbenv와 같은 버전 관리자를 사용하고 있습니까? 사용자 지정 경로 수정을 구현합니다.

실행중인 사용자와 sudo을 사용하고 있는지 알고 계십니까? 이것은 물론 경로 해석에 큰 영향을 미칠 수 있습니다.

다음을 시도해보십시오. 각 Ruby 구현의 실제 Bin 폴더로 이동하여 gem env 명령을 실행하십시오. 이것은 지역화 된 버전의 Ruby를 사용하여 명령을 실행하는 효과가 있습니다 (따라서 대부분의 경우 RubyGem도 마찬가지입니다). 이는 이러한 유형의 문제를 진단하는 데 매우 유용 할 수 있습니다. 예를 들어

:

cd /some_path/Ruby-1.9.1/bin

gem env

+0

나는 어떤 버전 관리자를 사용하지 않는 내가 루비 파일을 실행할 때 나는 루트 사용자 동일하게 실행하고 있습니다. /var/lib/gems/1.8/bin 디렉토리로 이동'gem env' 게시물에 공유 된 것과 동일한 결과를 보냅니다. –

+0

Ruby 경로를 망칠 때, 루트로 실행하는 것은 좋은 생각이 아닙니다. 두통의 원인이된다. 어쨌든, 당신이 제안한 경로가 내가 언급 한 경로가 아닙니다. EXECUTABLE DIRECTORY이며, 젬 출력의 날은 평범하기 때문에,'/ opt/jruby/bin'을 예로 들어보십시오. 다음은 유용한 정보가있는 임의의 기사입니다. http://answers.oreilly.com/topic/2845-installing-ruby-1-9-on-a-debian-or-ubuntu-system/ –