gemをインストールするために、より高いルビバージョンを指定する方法は?


8

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

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

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

インストールではまだルビが必要と表示されます> = 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 pdfbeadsruby 1.9.3 を使用するにはどうすればよいですか?


更新:

RVMでruby 2.1.0をインストールする方法に従いました。のパスを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がデフォルトのままであるためです。だから私は今何ができるのでしょうか?


あるrvmパスがルートの中にありますかPATH
cuonglm 2014

rvmにあり$PATHます。「root」の意味がわかりませんPATH。他のものはありPATHますか?
Tim

PATHあなたがルートであるときを意味します。
cuonglm 2014

そうではない。ルートに切り替えて、ルートのPATHにrvmパスを追加すると機能しPATH=$PATH:/home/tim/.rvm/binますか?アカウントに切り替えて、をインストールする必要がありpdfbeadsます。
Tim

ルートのホームにrvmとrubyをインストールしますか?
Tim

回答:


6

rvmやrbenvのようなrubyパッケージマネージャーの使用を検討したいかもしれません

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

また、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


ありがとう。私は今、あなたの提案を試みています。ところで、ruby1.9.3はシンボリックリンクで、1.9.1にリンクしています。なぜそれ自体が1.9.3であると言うのですか?
ティム

インストールしたruby1.9.3が機能しないのはなぜですか?
Tim

Ruby 2.1.0をインストールした後でも、「nokogiriにはRubyバージョン> = 1.9.2が必要です」というエラーが表示されます。最後に投稿を更新します。
Tim

1

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

rvm install 1.9.3
rvm use 1.9.3 --default
gem install pdfbeads  # Avoid sudo, will not fix real problems here.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.