2011-03-09 10 views
22

Historia:error RVM con la implementación de los carriles aplicación a través de Capistrano

  • Leer en Implementación de Rails3 aplicación a un servidor Mediatemple DV.
  • RVM instalado en el servidor, ruby ​​y gemas esenciales.
  • El sitio funciona bien si lo transfiero.
  • Todo bien.

Luego decidí realizar una implementación y configuración adecuadas para el despliegue GIT/cap según "Desarrollo web ágil con rieles".

  • Intento de despliegue con tapa, pero tenía errores con las gemas no disponibles para el sitio de producción.
  • Leyó y se dio cuenta de que probablemente debería optar por una instalación de RVM en todo el sistema.
  • Se han eliminado todas las gemas y RVM.
  • Sistema RVM instalado de ancho.
  • Error al desplegar la tapa "bash: /home/foo/.rvm/bin/rvm-shell: No existe dicho archivo o directorio", lo cual tiene sentido: no hay .rvm/en el directorio de inicio.
  • Pensando que algo estaba pasando desde la instalación inicial de RVM para usar como usuario, eliminé al usuario, borré el directorio de inicio y recreé al usuario con permisos.
  • mismo error en el despliegue tope "bash: /home/foo/.rvm/bin/rvm-shell: No existe el fichero o directorio"

La situación actual es:

Para foo,. bashrc contiene la última línea:

[[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm' 

Cuando expido:

type rvm | head -1 

la respuesta es "RVM es una función ".

/etc/rvmrc contiene

if [[ ! -s "$HOME/.rvm/scripts/rvm" ]]; then 
    umask g+w 
    export rvm_selfcontained=0 
    export rvm_prefix="/usr/local/" 
fi 

está quedando sin ideas aquí, y esperando para algunas sugerencias.

+3

Resuelto. Me acabo de deshacer si RVM. Funciona muy bien ahora. Guardaré RVM para mi máquina de desarrollo ... –

Respuesta

73

La próxima vez intenta agregar esto en su Capistrano:

set :rvm_type, :system 
+12

Muy útil. Alternativamente, puede establecer: rvm_type a: usuario si está implementando en un servidor con una instalación rvm para un solo usuario. –

+0

@mpapis ¿cómo se puede saber si tiene una instalación de rvm para un solo usuario o instalación del sistema? No recuerdo cuál hice. – JohnMerlino

+0

puede verificar después de iniciar sesión en el servidor y ejecutar 'echo $ rvm_path' – mpapis

5

Parece que RVM-shell no está en el directorio de instalación de RVM. Ejecute este comando

rvm get head 

Luego lo obtendrá en su directorio de rvm bin.

0

Solo quería agregar al comentario de @ imonyse.

la rama principal de rvm puede ser un poco inestable para algunas implementaciones. Sé que nuestras cajas SLES obsoletas tienen una tendencia a asfixiarse. Puede ser aconsejable obtener la versión estable más reciente.

rvm get stable 

Tampoco haga esto en un servidor muy viejo que ejecuta el código de producción, ya que puede tener consecuencias no deseadas.

Cuestiones relacionadas