2014-04-25 9 views
13

che sto ricevendo questo errore ogni volta che corro rails (o Comando eventuali rotaie) _rails_command:2: permission denied: bin/rails solo quando sono all'interno di alcuni vecchi rotaie cartella app .Strano rotaie errore "Autorizzazione negata: bin/rails" per vecchie rotaie apps

In queste directory il comando bundle exec rails c funziona ma rails o anche rails -v non funziona.

Background: io continuo il mio lavoro di codifica nella cartella Dropbox. Ora ho recentemente installato Manjaro e quindi tutte le app per le rotaie che ho scaricato dal mio sistema operativo precedente li chiamo vecchia app per le rotaie.

In breve: Rails funziona bene ovunque tranne che per le app vecchie rotaie. bundle exec rails c funziona bene però. versioni di Ruby, che ho provato: 2.0.0 (rvm), 2.1.1(rvm), 2.1.1 (system)

Gem Ambiente: 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: il suo bel lavoro in bash, il problema sembra essere con oh-my-zsh.

Ecco il mio rvm-info (da 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" 

risposta

28

Nella directory lei ha citato è il tuo rotaie in modalità eseguibile. In caso contrario, è possibile applicare

chmod u+x bin/rails 

e renderlo eseguibile.

+0

sì che funziona :). Ma quando uso bash funziona indipendentemente dal chmoding. – ArrC

0

Ho avuto lo stesso problema ed ecco cosa mi ha aiutato. aperto ~/.zshrc e aggiungere questo

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

Run

bundle exec rake rails:update:bin 

Si aggiornerà bin/binari e file bin/rake.

0

Ho questo quando cerco di utilizzare una versione di rails 4.0. Così, quando cerco di mettere bundle exec prima, come:

bundle exec rake db:migrate 

o

bundle exec rails s 

lavoro.