Ответ 1
В указанном вами каталоге представлены ваши рельсы в исполняемом режиме. Если вы не можете применить
chmod u+x bin/rails
и сделать его выполнимым.
Я получаю эту ошибку всякий раз, когда я запускаю rails
(или любую команду rails)
_rails_command:2: permission denied: bin/rails
ТОЛЬКО, когда я попадаю в каталог старых рельсов.
В этих каталогах команда bundle exec rails c
работает, но rails
или даже rails -v
не работают.
Фон: Я сохраняю рабочее пространство для кодирования в папке Dropbox. Теперь я недавно установил Manjaro и, следовательно, все приложения для рельсов, которые я загрузил из своей предыдущей ОС, называю их старыми рельсами.
Короче:
Rails отлично работает везде, за исключением старых приложений rails.
bundle exec rails c
работает нормально.
Ruby версии, которые я пробовал:
2.0.0 (rvm), 2.1.1(rvm), 2.1.1 (system)
Окружающая среда Gem:
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/tat/.rvm/gems/[email protected]
- RUBY EXECUTABLE: /home/tat/.rvm/rubies/ruby-2.0.0-p451/bin/ruby
- EXECUTABLE DIRECTORY: /home/tat/.rvm/gems/[email protected]/bin
- SPEC CACHE DIRECTORY: /home/tat/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/tat/.rvm/gems/[email protected]
- /home/tat/.rvm/gems/[email protected]
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/tat/.rvm/gems/[email protected]/bin
- /home/tat/.rvm/gems/[email protected]/bin
- /home/tat/.rvm/rubies/ruby-2.0.0-p451/bin
- /home/tat/bin
- /usr/local/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
- /usr/bin/core_perl
- /home/tat/.rvm/bin
UPDATE: Он работает отлично в bash, проблема, похоже, связана с oh-my-zsh.
Вот мой rvm-info (от zsh):
[email protected]:
system:
uname: "Linux tat-box 3.10.37-1-MANJARO #1 SMP Mon Apr 14 20:56:29 UTC 2014 x86_64 GNU/Linux"
system: "manjaro/0.8.9/x86_64"
bash: "/usr/bin/bash => GNU bash, version 4.3.8(1)-release (x86_64-unknown-linux-gnu)"
zsh: "/usr/bin/zsh => zsh 5.0.5 (x86_64-unknown-linux-gnu)"
rvm:
version: "rvm 1.25.23 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]"
updated: "21 hours 33 minutes 15 seconds ago"
path: "/home/tat/.rvm"
ruby:
interpreter: "ruby"
version: "2.0.0p451"
date: "2014-02-24"
platform: "x86_64-linux"
patchlevel: "2014-02-24 revision 45167"
full_version: "ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]"
homes:
gem: "/home/tat/.rvm/gems/[email protected]"
ruby: "/home/tat/.rvm/rubies/ruby-2.0.0-p451"
binaries:
ruby: "/home/tat/.rvm/rubies/ruby-2.0.0-p451/bin/ruby"
irb: "/home/tat/.rvm/rubies/ruby-2.0.0-p451/bin/irb"
gem: "/home/tat/.rvm/rubies/ruby-2.0.0-p451/bin/gem"
rake: "/home/tat/.rvm/gems/[email protected]/bin/rake"
environment:
PATH: "/home/tat/.rvm/gems/[email protected]/bin:/home/tat/.rvm/gems/[email protected]/bin:/home/tat/.rvm/rubies/ruby-2.0.0-p451/bin:/home/tat/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/core_perl:/home/tat/.gem/ruby/2.1.0/bin:/home/tat/.rvm/bin"
GEM_HOME: "/home/tat/.rvm/gems/[email protected]"
GEM_PATH: "/home/tat/.rvm/gems/[email protected]:/home/tat/.rvm/gems/[email protected]"
MY_RUBY_HOME: "/home/tat/.rvm/rubies/ruby-2.0.0-p451"
IRBRC: "/home/tat/.rvm/rubies/ruby-2.0.0-p451/.irbrc"
RUBYOPT: ""
gemset: "latest"
В указанном вами каталоге представлены ваши рельсы в исполняемом режиме. Если вы не можете применить
chmod u+x bin/rails
и сделать его выполнимым.
Запустить
bundle exec rake rails:update:bin
Он обновит файлы bin/rails и bin/rake.
У меня есть это, когда я пытаюсь использовать версию 4.0 rails.
Поэтому, когда я пытаюсь сначала поставить bundle exec
, например:
bundle exec rake db:migrate
или
bundle exec rails s
произведения.
У меня была такая же проблема, и вот что мне помогло. Откройте ~/.zshrc и добавьте это
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Решение для меня было:
bundle exec rake rails:update:bin
или просто используйте:
Для новых версий рельсов:
bundle exec rake app:update:bin
Для старых версий рельсов:
bundle exec rake rails:update:bin
Итак, что сработало для меня, любой, кто сталкивался с этой проблемой, должен бежать
bundle exec rake app:update:bin
Вам будет предложено спросить, хотите ли вы перезаписать? Варианты здесь:
Я выбрал, и казалось, что все в порядке.