Problemas de ruta con una instalación de código fuente

Problemas de ruta con una instalación de código fuente

Espero que mi título no sea confuso. Tengo una máquina CentOS 5 y tenía instalado Ruby 1.8.7 aquí. Entonces, para actualizar mi instalación de Ruby y gems/rails,

  • Rubí desinstalado:sudo yum eliminar rubí

  • Descargué la última versión estable de Ruby y la descomprimí:wget... && alquitrán -zxf ....

  • Pasó por la instalación habitual:

    • ./configure --prefix=$INICIO
    • hacer
    • sudo hacer instalar
  • Rubígemas descargadas:wget....

  • ejecutó el archivo de instalación: configuración de rubí.rb

Ahora mi problema es que si intento instalar rieles, lo hago escribiendo:rieles de instalación de gemas, me sale el siguiente mensaje:"-bash: /usr/local/bin/gem: /usr/local/bin/ruby: intérprete incorrecto: permiso denegado"

Así que el siguiente paso lógico (para mí) fue escribir:rieles de instalación de sudo gem, pero eso regresa"sudo: gem: comando no encontrado", lo que significa que he arruinado algo.

Solo para agregar algo más de información.

¿dónde está rubí?:rubí: /usr/lib/rubí /usr/lib64/rubí /usr/local/bin/rubí /usr/local/lib/rubí

cual rubí: ~/bin/rubí

Estoy pensando que al instalar Ruby manualmente desde la fuente he arruinado algo, ¿tal vez --prefix=$HOME es el culpable aquí?

Respuesta1

Parece que no desinstaló el paquete que proporciona el gemejecutable, por lo que todavía está en /usr/local/bin/y apunta al /usr/local/bin/rubyintérprete que ya no está presente.

Puede desinstalar ese paquete (recomendado, ya que también eliminó el paquete Ruby del que depende), o simplemente asegurarse de ~/binque esté antes /usr/local/binen su archivo PATH. (Como alternativa, si tiene acceso de root, puede volver a ejecutar el ./configurescript sin especificar --prefix=${HOME}y dejar que se instale en /usr/local/bin, que es el valor predeterminado de Ruby).

Una vez que hayas organizado las cosas para que tu shell encuentre el gemejecutable instalado en ~/bin, deberías poder hacerlo simplemente gem install railssin necesidad de sudo. (O, si realiza la instalación raíz en /usr/local/bin, asegúrese de gemque esté en /usr/local/bin/gemy luego ejecute sudo gem install rails, como lo intentó antes).

Posiblemente un mejor enfoque hubiera sido considerar cualquiera de los dosrvmorbenv, los cuales hacen que administrar múltiples rubíes sea una tarea bastante sencilla. Con cualquiera de estas herramientas, puede tener varias versiones de Ruby instaladas sin la necesidad de eliminar la versión de todo el sistema, que podría ser necesaria para otros paquetes del sistema.

información relacionada