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.