Come specificare una versione di rubino superiore per l'installazione di una gemma?


8

Installo un pacchetto ruby.

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

dice che ha bisogno di una versione rubino maggiore di 1.9.1.

Il mio rubino è 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

Ho ruby ​​1.9.1 e 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

ma 1.9.3 è collegato a 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

Si dice che sia 1.9.3 comunque:

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

Cambio comunque il link in 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

L'installazione dice ancora che ha bisogno di 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]

Ho ruby1.9.3 o solo ruby1.9.1?

Come posso sudo gem install pdfbeadsutilizzare ruby ​​1.9.3?


Aggiornare:

Ora ho seguito il modo di installare ruby ​​2.1.0 da RVM, ho aggiunto il percorso rvmal mio PATH. Ho quindi installato con successo ruby2.1.0 di

$ rvm install 2.1.0

e lo ha reso predefinito

$ 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

Ora torno a installare il pacchetto pdfbeads, ma senza sudo(perché pensavo di aver installato ruby ​​2.1.0 nel mio account, non in root, e l'installazione del pacchetto richiede la versione più recente ruby)

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

Quindi penso di dover usare sudo. Ma ho ancora l'errore originale,

$ sudo gem install pdfbeads

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

Penso che sia perché sotto sudo, l'utente è root, che ha ancora la versione precedente ruby1.8.7 come impostazione predefinita. Quindi mi chiedo cosa posso fare ora?


È rvmpercorso è in radice di PATH?
cuonglm

rvmè dentro $PATH. Non sono sicuro di cosa intendi per "radice PATH". ce ne sono altri PATH?
Tim

Intendo PATHquando sei root.
cuonglm,

Non è. Funzionerà se passo a root e aggiungo il percorso rvm al PATH del root da PATH=$PATH:/home/tim/.rvm/bin? Dovrò tornare al mio account e installare pdfbeads.
Tim

Devo installare rvm e ruby ​​sotto la casa del root?
Tim

Risposte:


6

Puoi prendere in considerazione l'utilizzo di un gestore di pacchetti ruby ​​come rvm o rbenv

Puoi installare diversi rubini e passare facilmente da uno all'altro.

Potresti anche provare a provare 2.0+

Output di esempio da 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

Ottieni rvm su http://rvm.io/

Installa con il suo famoso 1 liner:

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


Grazie. Ora sto provando quello che mi suggerisci. A proposito, ruby1.9.3 è un collegamento simbolico, che collega a 1.9.1. Ma perché si dice che è 1.9.3?
Tim

Perché ruby1.9.3 ho installato non funziona?
Tim

Ancora ottenere "nokogiri richiede la versione di Ruby> = 1.9.2", dopo aver installato ruby ​​2.1.0. Aggiorna il mio post alla fine.
Tim

1

Installare RVM e utilizzare quanto segue:

rvm install 1.9.3
rvm use 1.9.3 --default
gem install pdfbeads  # Avoid sudo, will not fix real problems here.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.