Software-Installation
如何為安裝 gem 指定更高的 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
我有紅寶石 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?更新:
我現在已經按照 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,而不是在root下,並且安裝包需要更新版本的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 作為預設值。所以我想知道我現在能做什麼?
您可能希望考慮使用 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