2011-10-24 10 views
1

Ubuntu 11.10をインストールしてRuby1.8.7を完全に削除し、ソースからRuby1.9.2-p290をインストールした後、rubygems1.8.10をインストールしました。ここで私は、インストールのために走ったスクリプトは...だすべてのパスが正しいと思われるにもかかわらず、Rubyが宝石を見つけることができません...

#!/bin/bash 
#=============================================================================== 
# 
#   FILE: install_ruby_1.9.sh 
# 
#   USAGE: ./install_ruby_1.9.sh 
# 
#  AUTHOR: Ryan Schulze (rs), [email protected] 
#  CREATED: 07/07/2011 11:59:37 AM CDT 
#=============================================================================== 

Version="1.9.2-p290" 
GZFile="ruby-${Version}.tar.gz" 
Download="http://ftp.ruby-lang.org/pub/ruby/1.9/${GZFile}" 

if [[ "$(id -u)" != "0" ]] 
then 
echo "You need root permission to execute this script" 
exit 
fi 

apt-get -q update 
apt-get -qy upgrade 
apt-get install -qy build-essential wget zlib1g-dev libssl-dev libffi-dev autoconf 

cd /usr/local/src/ 
test -e ${GZFile} || wget ${Download} 
tar -xzf ${GZFile} 
cd ruby-${Version} 

autoconf 
./configure --with-ruby-version=${Version} --prefix=/usr --program-suffix=${Version} 
make 
make install 

mkdir -p /usr/lib/ruby/gems/${Version}/bin 

update-alternatives \ 
    --install /usr/bin/ruby ruby /usr/bin/ruby${Version} $(echo ${Version//./}|cut -d- -f1) \ 
    --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby${Version}.1 \ 
    --slave /usr/lib/ruby/gems/bin  gem-bin /usr/lib/ruby/gems/${Version}/bin \ 
    --slave /usr/bin/irb irb /usr/bin/irb${Version} \ 
    --slave /usr/bin/gem gem /usr/bin/gem${Version} \ 

    update-alternatives --config ruby 
    update-alternatives --display gem >/dev/null 2>&1 && update-alternatives --remove-all gem 

...

スクリプトが完璧に走った、とルビーは(ものソースからインストールされた)にRubyGemsを除いて....正常に動作します:

$: irb 
irb(main):001:0> require 'rubygems' 
=> false 

しかし、それは正しいバージョンを指す:

$: which gem 
/usr/bin/gem 
$: file /usr/bin/gem 
/usr/bin/gem: symbolic link to `/etc/alternatives/gem' 
$: file /etc/alternatives/gem 
/etc/alternatives/gem: symbolic link to `/usr/bin/gem1.9.2-p290' 

また、ここでは宝石の環境だ:

$: gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.10 
    - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.9.2-p290/bin/ 
    - RUBY EXECUTABLE: /usr/bin/ruby1.9.2-p290 
    - EXECUTABLE DIRECTORY: /usr/lib/ruby/gems/1.9.2-p290/bin/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /usr/lib/ruby/gems/1.9.2-p290/bin/ 
    - /home/rbanerjee/.gem/ruby/1.9.2-p290 
    - /usr/lib/ruby/gems/1.9.2-p290 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

私は何が起こったのかについての損失でいます。別のマシンで、私が1.8.7から1.9.1になったときに、同様のアップグレードが機能しました。私はすべての詳細を提供しようとしましたが、これは長い質問です。どんな助けでも大歓迎です。

+0

/ir/binに/ irbを指していますか? –

+0

ディランの答えによって、問題がかなり後に解決されましたが、この点を指摘してくれてありがとう。はい、 'irb'は本当に'/usr/bin/irb'を返します。 –

答えて

1

Ruby 1.9では、require 'rubygems'は常にfalseを返します。 Rubygemsパッケージは1.9に含まれているので、別途必要としません。

偽の戻り値を超えて問題が発生していますか? (あなたの宝石は実際に働いていませんか?)

+0

ありがとうございます。これはRuby1.9.xの場合ですか、それとも1.9.2以降(将来)ですか?私は1.9.1を早く持っていて、非常に頻繁にirbですべての宝石をテストしました。そして、私の最初の行は、常に「習慣のない「ルビー宝石」を必要としていました」。とにかく、あなたの返事を読んだ後、私はすべての私の宝石を要求するために走った、そして彼らは正常に動作しているようだ!ありがとうございます:-) ああ...私は今半分を過ごした後、今は馬鹿だと感じます! –

+0

1.9.1がインストールされていないので、私は確かに言うことはできません。しかし、 'false'の戻り値は、必ずしも何かを上げるわけではありません。あなたは 'require 'my_gem''ステートメントでそれを続けることができ、うまくいくはずです。 –

関連する問題