2011-08-06 7 views
12

Estoy utilizando Debian Squeeze como mi sistema operativo y estoy tratando de desarrollar proyectos de Ruby on Rails. Para eso, primero instalé algunos paquetes ruby.cómo configurar ruby1.9.1 como versión predeterminada en debian squeeze

Mis versiones de rubí son: ruby1.8, ruby1.9.1

Luego he desinstalado ruby1.8 hacer ruby1.9.1 mi rubí por defecto.

Ahora si me quedo:

$ which ruby 

que no muestra nada.

Si me quedo:

$ which ruby1.9.1 
/usr/bin/ruby1.9.1 

Sin embargo:

$ rails new testApp 
bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file or directory 

no sé qué hacer. Por favor guíame.

+0

Ver esta pregunta: http://stackoverflow.com/questions/1892877/how-do-i-make-ruby-1-9-the-default-ruby-on-ubuntu – weakish

Respuesta

1

aunque no tengo la respuesta directa a su pregunta, le sugiero que pruebe con la maravillosa herramienta rvm (ruby version manager) (http://beginrescueend.com/). Hace mi vida mucho más fácil cuando trato de jugar con ruby ​​en Ubuntu.

+0

Gracias por su respuesta, lo intenté también cuando ejecuto ** bash <<(curl -s https://rvm.beginrescueend.com/install/rvm)** tengo ** ERROR: no se puede clonar el repositorio de RVM, intenté tanto git: // como https : // ** – Arivarasan

+0

asegúrese de que no está detrás de un firewall, y también tenga instalado git primero. el script de instalación de arranque se queja de que no se pueden verificar los recursos. Google será tu mejor amigo en esto. –

+1

Nota: rvm ha cambiado su procedimiento de instalación, siempre visite https://rvm.io/ para consultar las últimas novedades. – ocodo

9

lo que hago en mis cajas de compresión para obtener rubí 1,9 por defecto:

cd /usr/bin 
ln -sf ruby1.9.1 ruby 
ln -sf gem1.9.1 gem 
ln -sf erb1.9.1 erb 
ln -sf irb1.9.1 irb 
ln -sf rake1.9.1 rake 
ln -sf rdoc1.9.1 rdoc 
ln -sf testrb1.9.1 testrb 

corro una gran cantidad de servidores de producción carriles de esta manera y todos los otros paquetes Debian rubí no se rompen porque se retransmiten en/usr /bin/ruby1.8 binario.

Esto no es "cierto modo Debian" pero por alguna razón update-alternatives no admite la configuración de ruby ​​en squeeze.

En Ubuntu 11.10 sólo puede funcionar update-alternatives --config ruby y seleccionados versión deseada

También recomiendo que actualice rubygems antes de empezar a instalar cualquier gemas REALLY_GEM_UPDATE_SYSTEM=true gem update --system

12

Para Debian squeeze (6.0):

Primera asegúrese de desinstalar todos los paquetes ruby ​​y ruby1.8. De lo contrario, interferirán con los binarios/enlaces que están a punto de configurarse para ruby ​​1.9.

Luego instale los paquetes de ruby ​​1.9. A pesar de que estos paquetes se llaman '1.9.1', realmente instalan la versión de Ruby 1.9.2 en Debian squeeze. El paquete virtual ruby1.9.1-full instalará todos los paquetes necesarios para Ruby:

sudo aptitude install ruby1.9.1-full 

añadir enlaces alternativos para RI y página de manual en el paquete ri1.9.1. (Estas dos líneas son todos un solo comando.)

sudo update-alternatives --install /usr/bin/ri ri /usr/bin/ri1.9.1 10 \ 
--slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri1.9.1.1.gz 

añadir enlaces alternativos para el rubí, binarios asociados, y las páginas de manual en el paquete ruby1.9.1. (Estas líneas son todas un comando.)

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 10 \ 
--slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby1.9.1.1.gz \ 
--slave /usr/bin/erb erb /usr/bin/erb1.9.1 \ 
--slave /usr/bin/gem gem /usr/bin/gem1.9.1 \ 
--slave /usr/bin/irb irb /usr/bin/irb1.9.1 \ 
--slave /usr/bin/rake rake /usr/bin/rake1.9.1 \ 
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.1 \ 
--slave /usr/bin/testrb testrb /usr/bin/testrb1.9.1 \ 
--slave /usr/share/man/man1/erb.1.gz erb.1.gz /usr/share/man/man1/erb1.9.1.1.gz \ 
--slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem1.9.1.1.gz \ 
--slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb1.9.1.1.gz \ 
--slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake1.9.1.1.gz \ 
--slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc1.9.1.1.gz \ 
--slave /usr/share/man/man1/testrb.1.gz testrb.1.gz /usr/share/man/man1/testrb1.9.1.1.gz 

Tenga en cuenta que todos estos están instalados a una baja prioridad alternativa de 10 (la última porción después de la bandera --install pero antes de las banderas --slave). Esto se hace con la esperanza de que las versiones futuras de Debian incluyan ruby ​​1.8 y ruby ​​1.9 como parte del sistema de alternativas y anulen estos enlaces.

Comprobar ri en el sistema de alternativas:

update-alternatives --display ri 

El resultado:

ri - auto mode 
link currently points to /usr/bin/ri1.9.1 
/usr/bin/ri1.9.1 - priority 10 
slave ri.1.gz: /usr/share/man/man1/ri1.9.1.1.gz 
Current 'best' version is '/usr/bin/ri1.9.1'. 

Comprobar rubí en el sistema de alternativas:

update-alternatives --display ruby 

El resultado:

ruby - auto mode 
link currently points to /usr/bin/ruby1.9.1 
/usr/bin/ruby1.9.1 - priority 10 
slave erb: /usr/bin/erb1.9.1 
slave erb.1.gz: /usr/share/man/man1/erb1.9.1.1.gz 
slave gem: /usr/bin/gem1.9.1 
slave gem.1.gz: /usr/share/man/man1/gem1.9.1.1.gz 
slave irb: /usr/bin/irb1.9.1 
slave irb.1.gz: /usr/share/man/man1/irb1.9.1.1.gz 
slave rake: /usr/bin/rake1.9.1 
slave rake.1.gz: /usr/share/man/man1/rake1.9.1.1.gz 
slave rdoc: /usr/bin/rdoc1.9.1 
slave rdoc.1.gz: /usr/share/man/man1/rdoc1.9.1.1.gz 
slave ruby.1.gz: /usr/share/man/man1/ruby1.9.1.1.gz 
slave testrb: /usr/bin/testrb1.9.1 
slave testrb.1.gz: /usr/share/man/man1/testrb1.9.1.1.gz 
Current 'best' version is '/usr/bin/ruby1.9.1'. 
+0

Aparece el siguiente error al instalar la alternativa 'update-alternatives: error: la gema alternativa no puede ser esclava de ruby: es una alternativa maestra.' –

+0

¿En qué versión de Debian estaba esto? Los comandos anteriores fueron específicamente para squeeze (6.x). Quizás hubo una configuración del paquete rubygems1.8 o uno de los otros paquetes ruby ​​1.8. ¿Fueron esos paquetes y sus configuraciones completamente purgados? – finn

+0

Me perdí el paso * 1 * que fue eliminar ruby ​​1.8 Estaba esperando una forma de cambiar de una versión a otra. Voy a morder la bala y actualizar sin embargo. –

Cuestiones relacionadas