ruby - La consola Rails no funciona en el servidor
ruby-on-rails-4 ssh (4)
Estoy usando capistrano para implementar, incluida la joya capistrano / bundler. Como el directorio ./ bin
está controlado por la versión en Rails 4, debemos evitar que Capistrano lo vincule en las implementaciones eliminando bin de set :linked_dirs
.
Ahora, para evitar que bundler sobrescriba los binstubs controlados por la versión, podemos agregar el set :bundle_binstubs, nil
líneas set :bundle_binstubs, nil
que evitará que capistrano-bundler configure la opción --binstubs cuando ejecute bundle install.
Mi archivo config / deploy.rb ahora tiene estas líneas:
# Default value for linked_dirs is []
set :linked_dirs, fetch(:linked_dirs, []).push(''log'', ''tmp/pids'', ''tmp/cache'', ''tmp/sockets'', ''vendor/bundle'', ''public/system'')
set :bundle_binstubs, nil
Tenga en cuenta la falta del directorio bin
en la línea :linked_dirs
.
Cuando ejecuto bundle exec rails console production
o rails console production
través de SSH en el servidor en la carpeta Current
del despliegue de Capistrano, obtengo:
Usage:
rails new APP_PATH [options]
Options:
(...)
con una explicación para comenzar una nueva aplicación. Localmente funciona. ¿Por qué no puedo iniciar una consola de forma remota?
Ha pasado un tiempo desde que esto fue respondido.
En mi caso, necesitaba ejecutar:
rake app:update:bin
Nota: aplicación en lugar de raíles.
Me faltaba el directorio bin todo junto en mi aplicación Rails 5.1
Supongo que actualizaste a rails 4
desde la versión 3 y tu aplicación no puede encontrar los ejecutables en el directorio bin
. Ejecuta esto para ver tu versión de rieles:
$ rails -v
Si la versión de su rails
es 4 o superior, intente ejecutar esto:
$ rake rails:update:bin
Fuente: Notas de la versión de Rails 4
6.1 Cambios notables
- Los ejecutables de su aplicación ahora viven en
bin/
dir. Ejecutarrake rails:update:bin
para obtenerbin/bundle
,bin/rails
, ybin/rake
.
Tengo el mismo problema, y resulta que cuando despliegas a través de cap shared/bin
es symlink a current/bin
.
Esto es lo que funciona para mí:
-
rm current/bin
-
mkdir current/bin
-
rake rails:update:bin
Esto debería ayudar, pero de alguna manera es una solución temporal, estoy tratando de descubrir cómo hacer que el cap no sea un enlace simbólico actual / bin.