Консоль Rails не работает на сервере
когда я запускаю bundle exec rails console production
или rails console production
через SSH на сервере в Current
папка развертывания Capistrano я получаю:
Usage:
rails new APP_PATH [options]
Options:
(...)
с объяснением, чтобы запустить новое приложение. Локально это работает. Почему я не могу запустить консоль удаленно?
5 ответов
Я предполагаю, что вы обновили до rails 4
С версии 3, и ваше приложение не может найти исполняемые файлы в . Запустите это, чтобы увидеть версию rails:
$ rails -v
если rails
версия 4 или выше, попробуйте запустить это:
$ rake rails:update:bin
источник: Rails 4 Примечания К Выпуску
6.1 заметные изменения
- исполняемые файлы вашего приложения теперь живут в
bin/
реж. Запуститьrake rails:update:bin
в getbin/bundle
,bin/rails
иbin/rake
.
Я использую capistrano для развертывания, включая драгоценный камень capistrano/bundler. Поскольку ./bin
каталог контролируется версией в Rails 4, нам нужно предотвратить связывание Capistrano с развертываниями, удалив bin из set :linked_dirs
.
теперь для того, чтобы предотвратить bundler от перезаписи версии контролируемых binstubs, мы можем добавить строку set :bundle_binstubs, nil
что помешает capistrano-bundler установить параметр --binstubs при запуске установки пакета.
мой конфигурации/развернуть.RB файл теперь имеет следующие строки:
# 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
обратите внимание на отсутствие
у меня такая же проблема, и получается, когда вы развертываете через cap shared/bin
является символической ссылкой на current/bin
.
вот что работает для меня:
rm current/bin
mkdir current/bin
rake rails:update:bin
Это должно помочь, но это несколько временное решение, я пытаюсь выяснить, как сделать cap не автоматической символической ссылкой/bin.
В случае рельсы 5.2
мне пришлось удалить каталог bin, выполнив команду ниже в корневом каталоге проекта.
rm -rf bin
и затем я запустил другую команду в корневом каталоге проекта:
rake app:update:bin
Он покажет вам выход, как показано ниже:
create bin
create bin/bundle
create bin/rails
create bin/rake
create bin/setup
create bin/update
create bin/yarn
вот именно.
прошло некоторое время с тех пор, как на это ответили.
в моем случае мне нужно запустить:
rake app:update:bin
Примечание - приложение, а не рельсы.
мне не хватало каталога bin все вместе в моем приложении Rails 5.1