web-dev-qa-db-ja.com

奇妙なRailsエラー "許可が拒否されました:bin / Rails"古いRailsアプリ

Rails(または任意のRailsコマンド)__Rails_command:2: permission denied: bin/Rails_を実行するたびに、このエラーが発生します。old Railsアプリディレクトリ。

これらのディレクトリでは、_bundle exec Rails c_コマンドは機能しますが、Railsまたは_Rails -v_は機能しません。

背景:コーディングワークスペースをDropboxフォルダーに保存します。最近Manjaroをインストールしたので、以前のOSからダウンロードしたすべてのRailsアプリをold Rails app 。

要するに: Rails古いRailsアプリを除いてどこでも正常に動作します。_bundle exec Rails c_は正常に動作します。Ruby私が試したバージョン:2.0.0 (rvm), 2.1.1(rvm), 2.1.1 (system)

宝石環境: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

[〜#〜] update [〜#〜]: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 <[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/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"
_
16
ArrC

あなたが言及したディレクトリには、実行可能モードのRails)があります。そうでない場合は、適用できます。

chmod u+x bin/Rails

実行可能にします。

38
user944938

実行

bundle exec rake Rails:update:bin

Bin/Railsおよびbin/rakeファイルを更新します。

9
Victor

だから私のために働いたのは、この問題に遭遇した人は誰でも実行することです

bundle exec rake app:update:bin

上書きするかどうかを尋ねるプロンプトが表示されますか?ここでのオプションは次のとおりです。

  • Y-はい(デフォルトのもの、Enterキーを押すだけです)
  • n-いいえ(現在のファイルを変更せずに残す)
  • a-すべて(すべての変更を適用)
  • q-終了
  • d-diff
  • h-ヘルプ

私はを選びました、そしてそれはうまくいくようでした。

2
newtron54

Rails 4.0バージョンを使おうとするとこれがあります。したがって、最初にbundle execを入れようとすると、次のようになります。

bundle exec rake db:migrate

または

bundle exec Rails s

仕事の。

1
rld

私にとっての解決策は次のとおりです。

bundle exec rake Rails:update:bin

または単に使用:

新しいRailsバージョンの場合:

 bundle exec rake app:update:bin

古いRailsバージョンの場合:

bundle exec rake Rails:update:bin
0
Eugeniu T.

私は同じ問題を抱えていました、そしてこれが私を助けたものです。 〜/ .zshrcを開き、これを追加します

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