Làm thế nào để chỉ định một phiên bản ruby ​​cao hơn để cài đặt đá quý?


8

Tôi cài đặt một gói ruby.

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

nói rằng nó cần phiên bản ruby ​​lớn hơn 1.9.1.

Viên hồng ngọc của tôi là 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

Tôi có ruby ​​1.9.1 và 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

nhưng 1.9.3 được liên kết với 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

Nó nói chính nó là 1.9.3 tuy nhiên:

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

Tôi vẫn thay đổi liên kết thành 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

Cài đặt vẫn cho biết cần 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]

Tôi có ruby1.9.3 hay chỉ ruby1.9.1?

Làm thế nào tôi có thể sudo gem install pdfbeadssử dụng ruby ​​1.9.3?


Cập nhật:

Bây giờ tôi đã làm theo cách cài đặt ruby ​​2.1.0 bằng RVM, tôi đã thêm đường dẫn của rvmtôi PATH. Sau đó tôi đã cài đặt thành công ruby2.1.0

$ rvm install 2.1.0

và làm cho nó mặc định

$ 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

Bây giờ quay lại để cài đặt gói pdfbeads, nhưng không có sudo(vì tôi nghĩ rằng tôi đã cài đặt ruby ​​2.1.0 trong tài khoản của mình, không phải root và cài đặt gói yêu cầu phiên bản ruby ​​mới hơn)

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

Vì vậy, tôi nghĩ rằng tôi phải sử dụng sudo. Nhưng tôi vẫn nhận được lỗi ban đầu,

$ sudo gem install pdfbeads

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

Tôi nghĩ rằng đó là bởi vì bên dưới sudo, người dùng rootvẫn có phiên bản cũ hơn ruby1.8.7 như mặc định. Vì vậy, tôi tự hỏi tôi có thể làm gì bây giờ?


rvmđường dẫn trong root PATH?
cuonglm

rvmlà trong $PATH. Tôi không chắc ý của bạn là "root's PATH". có khác PATHkhông
Tim

Ý tôi là PATHkhi bạn root.
cuonglm

Không phải vậy. Nó có hoạt động không nếu tôi chuyển sang root và thêm đường dẫn rvm vào PATH của root bằng cách PATH=$PATH:/home/tim/.rvm/bin? Tôi sẽ phải chuyển trở lại tài khoản của mình và cài đặt pdfbeads.
Tim

Tôi có nên cài đặt rvm và ruby ​​dưới gốc của root không?
Tim

Câu trả lời:


6

Bạn có thể cân nhắc sử dụng trình quản lý gói ruby ​​như rvm hoặc rbenv

Bạn có thể cài đặt các viên hồng ngọc khác nhau và chuyển đổi giữa chúng dễ dàng.

Bạn cũng có thể muốn xem xét thử 2.0+

Đầu ra mẫu từ 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

Nhận rvm tại http://rvm.io/

Cài đặt với 1 lớp lót nổi tiếng của nó:

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


Cảm ơn. Bây giờ tôi đang thử những gì bạn đề nghị. Btw, ruby1.9.3 là một liên kết tượng trưng, ​​liên kết đến 1.9.1. Bu tại sao nó tự nói là 1.9.3?
Tim

Tại sao ruby1.9.3 tôi cài đặt không hoạt động?
Tim

Vẫn nhận được lỗi "nokogiri yêu cầu phiên bản Ruby> = 1.9.2", sau khi cài đặt ruby ​​2.1.0. Tôi cập nhật bài viết của tôi ở cuối của nó.
Tim

1

Cài đặt RVM và sử dụng như sau:

rvm install 1.9.3
rvm use 1.9.3 --default
gem install pdfbeads  # Avoid sudo, will not fix real problems here.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.