对于旧的rails应用程序,奇怪的rails错误“权限被拒绝:bin / rails”

每当我运行rails (或任何rails命令)时,我都会收到此错误_rails_command:2: permission denied: bin/rails仅当我在一个旧的 rails应用程序目录中时。

在这些目录中, bundle exec rails c命令可以工作但是rails甚至rails -v不起作用。

背景:我将编码工作区保留在dropbox文件夹中。 现在我最近安装了Manjaro,因此我从之前的操作系统中下载的所有rails应用程序都称之为旧的 rails应用程序。

简而言之:除了旧的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/ruby-2.0.0-p451@latest - RUBY EXECUTABLE: /home/tat/.rvm/rubies/ruby-2.0.0-p451/bin/ruby - EXECUTABLE DIRECTORY: /home/tat/.rvm/gems/ruby-2.0.0-p451@latest/bin - SPEC CACHE DIRECTORY: /home/tat/.gem/specs - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /home/tat/.rvm/gems/ruby-2.0.0-p451@latest - /home/tat/.rvm/gems/ruby-2.0.0-p451@global - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /home/tat/.rvm/gems/ruby-2.0.0-p451@latest/bin - /home/tat/.rvm/gems/ruby-2.0.0-p451@global/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

更新 :它在bash中运行良好,问题似乎与oh-my-zsh有关。

这是我的rvm-info(来自zsh):

 ruby-2.0.0-p451@latest: 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 , Michal Papis  [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/ruby-2.0.0-p451@latest" 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/ruby-2.0.0-p451@latest/bin/rake" environment: PATH: "/home/tat/.rvm/gems/ruby-2.0.0-p451@latest/bin:/home/tat/.rvm/gems/ruby-2.0.0-p451@global/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/ruby-2.0.0-p451@latest" GEM_PATH: "/home/tat/.rvm/gems/ruby-2.0.0-p451@latest:/home/tat/.rvm/gems/ruby-2.0.0-p451@global" 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" 

在你提到的目录中是你的可执行模式的rails。 如果没有,你可以申请

 chmod u+x bin/rails 

并使其可执行。

 bundle exec rake rails:update:bin 

它将更新bin / rails和bin / rake文件。

我有同样的问题,这是帮助我的。 打开〜/ .zshrc并添加它

 export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 

当我尝试使用rails 4.0版本时,我有这个。 所以当我尝试将bundle exec放在第一位时,例如:

 bundle exec rake db:migrate 

要么

 bundle exec rails s 

作品。

    Interesting Posts