Bagaimana cara menentukan versi ruby ​​yang lebih tinggi untuk memasang permata?


8

Saya menginstal paket ruby.

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

mengatakan bahwa itu membutuhkan versi ruby ​​lebih besar dari 1.9.1.

Ruby saya adalah 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

Saya memiliki rubi 1.9.1 dan 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

tetapi 1.9.3 ditautkan dengan 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

Dikatakan sendiri 1.9.3 namun:

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

Saya mengubah tautan ke 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

Instalasi masih mengatakan itu membutuhkan 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]

Apakah saya punya ruby1.9.3 atau hanya ruby1.9.1?

Bagaimana saya bisa sudo gem install pdfbeadsmenggunakan ruby ​​1.9.3?


Memperbarui:

Saya sekarang telah mengikuti cara menginstal ruby ​​2.1.0 oleh RVM, saya telah menambahkan path rvmke PATH. Saya kemudian berhasil menginstal ruby2.1.0 oleh

$ rvm install 2.1.0

dan menjadikannya default

$ 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

Sekarang kembali untuk menginstal paket pdfbeads, tetapi tanpa sudo(karena saya pikir saya telah menginstal ruby ​​2.1.0 di akun saya, tidak di bawah root, dan instalasi paket memerlukan versi ruby ​​yang lebih baru)

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

Jadi saya pikir saya harus menggunakan sudo. Tapi saya masih mendapatkan kesalahan aslinya,

$ sudo gem install pdfbeads

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

Saya pikir itu karena di bawah sudo, pengguna root, yang masih memiliki ruby1.8.7 versi yang lebih lama sebagai default. Jadi saya bertanya-tanya apa yang bisa saya lakukan sekarang?


Apakah rvmpath ada di root PATH?
cuonglm

rvmadalah di $PATH. Saya tidak yakin apa yang Anda maksud dengan "root PATH". apakah ada yang lain PATH?
Tim

Maksud saya PATHketika Anda root.
cuonglm

Bukan itu. Apakah akan berfungsi jika saya beralih ke root, dan menambahkan path rvm ke PATH root PATH=$PATH:/home/tim/.rvm/bin? Saya harus kembali ke akun saya, dan menginstal pdfbeads.
Tim

Haruskah saya menginstal rvm dan ruby ​​di bawah root?
Tim

Jawaban:


6

Anda mungkin ingin mempertimbangkan untuk menggunakan manajer paket ruby ​​seperti rvm atau rbenv

Anda dapat memasang rubi yang berbeda dan beralih di antaranya dengan mudah.

Anda mungkin juga ingin mempertimbangkan untuk mencoba 2.0+

Contoh keluaran dari 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

Dapatkan rvm di http://rvm.io/

Instal dengan 1 linernya yang terkenal:

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


Terima kasih. Saya sekarang mencoba apa yang Anda sarankan. Btw, ruby1.9.3 adalah symlink, yang terhubung ke 1.9.1. Tapi mengapa ia mengatakan itu sendiri 1.9.3?
Tim

Mengapa ruby1.9.3 saya diinstal tidak berfungsi?
Tim

Masih mendapatkan "nokogiri memerlukan kesalahan versi Ruby> = 1.9.2", setelah menginstal ruby ​​2.1.0. Saya memperbarui posting saya pada akhirnya.
Tim

1

Instal RVM dan gunakan yang berikut ini:

rvm install 1.9.3
rvm use 1.9.3 --default
gem install pdfbeads  # Avoid sudo, will not fix real problems here.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.