web-dev-qa-db-ja.com

ジェムをインストールするためのより高いRuby=バージョンを指定する方法は?

Rubyパッケージをインストールします。

$ Sudo gem install pdfbeads
ERROR:  Error installing pdfbeads:
    nokogiri requires Ruby version >= 1.9.2.

Ruby 1.9.1以上のバージョンが必要であると述べています。

私のRubyは1.8.7です。

$ which Ruby
/usr/bin/Ruby
$ Ruby --version
Ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
$ gem --version
1.8.15

Ruby 1.9.1および1.9.3です。

$ whereis Ruby1.9.1
Ruby1.9: /usr/bin/Ruby1.9.1 /usr/bin/Ruby1.9.3 /usr/bin/X11/Ruby1.9.1 /usr/bin/X11/Ruby1.9.3

1.9.3は1.9.1にリンクされています。

$ ls /usr/bin/Ruby* -l
lrwxrwxrwx 1 root root   22 Jul 10 02:33 /usr/bin/Ruby -> /etc/alternatives/Ruby
-rwxr-xr-x 1 root root 5504 Nov 26  2013 /usr/bin/Ruby1.8
-rwxr-xr-x 1 root root 5552 Nov 26  2013 /usr/bin/Ruby1.9.1
lrwxrwxrwx 1 root root    9 Nov 26  2013 /usr/bin/Ruby1.9.3 -> Ruby1.9.1

それ自体は1.9.3であると言いますが、

$  /usr/bin/Ruby1.9.3 --version
Ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]

とにかくリンクをRuby1.9.3に変更する

$ ls -l /usr/bin/Ruby*
lrwxrwxrwx 1 root root    9 Aug 20 21:16 /usr/bin/Ruby -> Ruby1.9.3
-rwxr-xr-x 1 root root 5504 Nov 26  2013 /usr/bin/Ruby1.8
-rwxr-xr-x 1 root root 5552 Nov 26  2013 /usr/bin/Ruby1.9.1
lrwxrwxrwx 1 root root    9 Nov 26  2013 /usr/bin/Ruby1.9.3 -> Ruby1.9.1

インストールはまだそれが必要と言っていますRuby> = 1.9.2

$ Sudo gem install pdfbeads
ERROR:  Error installing pdfbeads:
    nokogiri requires Ruby version >= 1.9.2.
$ gem --version
1.8.15
$ Ruby --version
Ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]

Ruby1.9.3またはRuby1.9.1はありますか?

どうすればSudo gem install pdfbeads Ruby 1.9.3を使用しますか?


更新:

Ruby 2.1.0をRVMでインストールする方法に従いました。rvmのパスをPATHに追加しました。Ruby2を正常にインストールしました.1.0によって

$ rvm install 2.1.0

そしてそれをデフォルトにした

$ rvm use 2.1.0

$ Ruby -v
Ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
$ which Ruby
/home/tim/.rvm/rubies/Ruby-2.1.0/bin/Ruby

次に、パッケージpdfbeadsをインストールしますが、Sudoはインストールしません(ルートの下ではなく、自分のアカウントの下にRuby 2.1.0をインストールしたと思っていたため、パッケージのインストールには新しいバージョンのRubyが必要です)

$ gem install pdfbeads
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.8 directory.

ですから、Sudoを使用する必要があると思います。しかし、それでも元のエラーが発生します。

$ Sudo gem install pdfbeads

ERROR:  Error installing pdfbeads:
    nokogiri requires Ruby version >= 1.9.2.

これは、Sudoの下で、ユーザーがrootであり、古いバージョンのRuby1.8.7がデフォルトとして残っているためだと思います。だから私は今何ができるのでしょうか?

8
Tim

Rubyパッケージマネージャー、rvmやrbenvなどの使用を検討することをお勧めします。

異なるルビーをインストールして、それらを簡単に切り替えることができます。

また、2.0以上を試してみるのもよいでしょう。

Rvmからの出力例:

21:59:48 durrantm Castle2012 /home/durrantm 
$ rvm list

rvm rubies

   Ruby-1.8.7-p374 [ x86_64 ]
   Ruby-1.9.3-p125 [ x86_64 ]
   Ruby-1.9.3-p194 [ x86_64 ]
   Ruby-1.9.3-p448 [ x86_64 ]
   Ruby-2.0.0-p195 [ x86_64 ]
=* Ruby-2.0.0-p247 [ x86_64 ]
   Ruby-2.0.0-p481 [ x86_64 ]
   Ruby-2.1.1 [ x86_64 ]
   Ruby-2.1.2 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

21:59:50 durrantm Castle2012 /home/durrantm 
$ rvm use 2.0.0
Using /home/durrantm/.rvm/gems/Ruby-2.0.0-p481

$ rvm use 2.1.1
Using /home/durrantm/.rvm/gems/Ruby-2.1.1

$ rvm use 1.9.3
Ruby-1.9.3-p547 is not installed.

$ rvm use 1.9.3-p448
Using /home/durrantm/.rvm/gems/Ruby-1.9.3-p448

http://rvm.io/ でrvmを取得します

有名な1ライナーで取り付けます。

$ \curl -sSL https://get.rvm.io | bash -s stable

6
Michael Durrant

RVMをインストールし、以下を使用します。

rvm install 1.9.3
rvm use 1.9.3 --default
gem install pdfbeads  # Avoid Sudo, will not fix real problems here.
1
Michael Durrant