Ruby on rails “奇怪的轨道错误”;拒绝许可:bin/rails“;对于旧rails应用程序

Ruby on rails “奇怪的轨道错误”;拒绝许可:bin/rails“;对于旧rails应用程序,ruby-on-rails,ruby,ruby-on-rails-3,rvm,oh-my-zsh,Ruby On Rails,Ruby,Ruby On Rails 3,Rvm,Oh My Zsh,每当我运行rails(或任何rails命令)时,都会出现此错误 _rails\u命令:2:权限被拒绝:bin/rails 只有当我在一些旧的rails应用程序目录中时 在这些目录中,bundle exec rails c命令起作用,但rails甚至rails-v都不起作用 背景: 我将我的编码工作区保存在dropbox文件夹中。 现在我最近安装了Manjaro,因此我从以前的操作系统下载了所有rails应用,我称它们为旧的rails应用 简而言之: 除了旧的Rails应用程序,Rails在任

每当我运行
rails
(或任何rails命令)时,都会出现此错误

_rails\u命令:2:权限被拒绝: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(系统)

创业板环境:

RubyGems环境:
-RUBYGEMS版本:2.2.2
-RUBY版本:2.0.0(2014-02-24 patchlevel 451)[x86_64-linux]
-安装目录:/home/tat/.rvm/gems/ruby-2.0.0-p451@latest
-RUBY可执行文件:/home/tat/.rvm/rubies/RUBY-2.0.0-p451/bin/RUBY
-可执行目录:/home/tat/.rvm/gems/ruby-2.0.0-p451@latest/垃圾箱
-SPEC缓存目录:/home/tat/.gem/specs
-RUBYGEMS平台:
-红宝石
-x86_64-linux
-宝石路径:
-/home/tat/.rvm/gems/ruby-2.0.0-p451@latest
-/home/tat/.rvm/gems/ruby-2.0.0-p451@global
-GEM配置:
-:update_sources=>true
-:verbose=>true
-:backtrace=>false
-:批量_阈值=>1000
-远程来源:
- https://rubygems.org/
-外壳路径:
-/home/tat/.rvm/gems/ruby-2.0.0-p451@latest/垃圾箱
-/home/tat/.rvm/gems/ruby-2.0.0-p451@global/垃圾箱
-/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\u perl
-/home/tat/.rvm/bin

更新: 它在bash中运行良好,问题似乎出在oh my zsh上

以下是我的rvm信息(来自zsh):

ruby-2.0.0-p451@latest:
系统:
uname:“Linux tat框3.10.37-1-MANJARO#1 SMP周一4月14日20:56:29 UTC 2014 x86_64 GNU/Linux”
系统:“manjaro/0.8.9/x86_64”
bash:“/usr/bin/bash=>GNUBash,版本4.3.8(1)-发布(x86_64-unknown-linux-GNU)”
zsh:“/usr/bin/zsh=>zsh5.0.5(x86_64-unknown-linux-gnu)”
rvm:
版本:“rvm 1.25.23(大师级)作者:韦恩E.塞根,迈克尔·帕皮斯[https://rvm.io/]"
更新:“21小时33分15秒前”
路径:“/home/tat/.rvm”
红宝石:
翻译:“ruby”
版本:“2.0.0p451”
日期:“2014-02-24”
平台:“x86_64-linux”
补丁级别:“2014-02-24修订版45167”
完整版本:“ruby 2.0.0p451(2014-02-24修订版45167)[x86_64-linux]”
家园:
gem:“/home/tat/.rvm/gems/ruby-2.0.0-p451@latest"
ruby:“/home/tat/.rvm/rubies/ruby-2.0.0-p451”
二进制文件:
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/垃圾桶/耙”
环境:
路径:“/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/core\u 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_路径:“/home/tat/.rvm/gems/ruby-2.0.0”-p451@latest:/home/tat/.rvm/gems/ruby-2.0.0-p451@global"
我的RUBY之家:“/HOME/tat/.rvm/rubies/RUBY-2.0.0-p451”
IRBRC:“/home/tat/.rvm/rubies/ruby-2.0.0-p451/.IRBRC”
鲁比奥普特:“
宝石:“最新”

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

chmod u+x bin/rails

并使其可执行。

我也有同样的问题,以下是帮助我的方法。 打开~/.zshrc并添加此

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


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

当我尝试使用rails 4.0版本时,我有这个功能。 因此,当我尝试将
bundle exec
放在第一位时,比如:

bundle exec rake db:migrate


工作。

我的解决方案是:

bundle exec rake rails:update:bin
或直接使用:

对于新的rails版本:

 bundle exec rake app:update:bin
bundle exec rake rails:update:bin
对于旧rails版本:

 bundle exec rake app:update:bin
bundle exec rake rails:update:bin

所以,对我来说,任何遇到这个问题的人都应该逃跑

bundle exec rake app:update:bin
系统将提示您是否要覆盖?这里的选项是:

  • Y-是(默认值,只需按Enter键即可)
  • n-否(保留当前文件而不更改)
  • a-全部(应用所有更改)
  • q-退出
  • d-diff
  • h-帮助

我选择了a,它似乎工作正常

是的,这很有效:)。但是,当我使用bash时,无论chmod'ing如何,它都可以工作。这解决了这个问题,作为一种解决方法,但应该将@newtron54的答案标记为正确答案。
bundle exec rake app:update:bin