Проблема при попытке запустить Node из Foreman на Lion - `exec': ошибка отказа в доступе

Я следовал руководству на веб-сайте Heroku, чтобы запустить сервер узлов с помощью мастера:

http://devcenter.heroku.com/articles/node-js

Я могу успешно запустить сервер узла, если загружу его напрямую, но как только я использую Foreman в Procfile, возникают следующие ошибки...

My-MacBook-Air:myDirectory digiguru$ foreman start
13:25:26 web.1     | started with pid 29046
13:25:26 web.1     | /usr/local/foreman/lib/foreman/process.rb:38:in `exec': Permission denied - /usr/local/foreman/bin/runner (Errno::EACCES)
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:38:in `fork_with_io'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:32:in `fork'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:32:in `fork_with_io'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:44:in `run_process'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:19:in `run'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:64:in `with_environment'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:18:in `run'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:17:in `chdir'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/process.rb:17:in `run'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/procfile_entry.rb:17:in `spawn'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/procfile_entry.rb:15:in `map'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/procfile_entry.rb:15:in `spawn'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/engine.rb:63:in `spawn_processes'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/engine.rb:61:in `each'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/engine.rb:61:in `spawn_processes'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/engine.rb:45:in `start'
13:25:26 web.1     |    from /usr/local/foreman/lib/foreman/cli.rb:28:in `start'
13:25:26 web.1     |    from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'
13:25:26 web.1     |    from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
13:25:26 web.1     |    from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
13:25:26 web.1     |    from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
13:25:26 web.1     |    from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
13:25:26 web.1     |    from /usr/bin/foreman:15
13:25:26 web.1     | process terminated
13:25:26 system    | sending SIGTERM to all processes

Могу ли я что-нибудь сделать, чтобы дать Форману разрешение? Я пробовал sudo foreman start, но безрезультатно.

Я использую ruby ​​версии 1.9.3 (обновлен с версии 1.8.7, установленной на lion по умолчанию).

ОБНОВЛЕНИЕ

Запустив sudo foreman start после @user658619 установки херуко и бригадира из рубиновых драгоценных камней, получаем...

/Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find foreman (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
    from /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
    from /Users/digiguru/.rvm/gems/ruby-1.9.3-p0/bin/foreman:18:in `<main>'

Моя среда...

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-darwin11.2.0]
  - INSTALLATION DIRECTORY: /Users/digiguru/.rvm/gems/ruby-1.9.3-p0
  - RUBY EXECUTABLE: /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/digiguru/.rvm/gems/ruby-1.9.3-p0/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/digiguru/.rvm/gems/ruby-1.9.3-p0
     - /Users/digiguru/.rvm/gems/ruby-1.9.3-p0@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

person digiguru    schedule 28.01.2012    source источник
comment
Вы можете запустить узел, используя именно ту команду, которую вы описали в Procfile?   -  person Neil Middleton    schedule 29.01.2012
comment
поэтому командный узел web.js работает, когда я нахожусь в правильном каталоге, профиль просто web: узел web.js, который мастер проверяет правильно при запуске проверки мастера.   -  person digiguru    schedule 29.01.2012


Ответы (3)


У меня такая же проблема сегодня. Вы установили heroku через heroku-toolbelt.pkg??

Попробуйте использовать gem для переустановки heroku и foreman.

sudo gem install heroku foreman
person digisnail    schedule 29.01.2012
comment
Я не обновлял Ruby до 1.9.3, я использую версию по умолчанию на Lion. - person digisnail; 29.01.2012
comment
Ладно - у меня работает. Вы не должны использовать sudo gem install - это не позволяет вам контролировать установку. Вместо этого установите без sudo. Таким образом, вы можете поменять профиль позже, используя rvm. - person digiguru; 29.01.2012

По сути, чтобы заставить его работать, я, к сожалению, испортил свои установки, смешав рубины и драгоценные камни, некоторые из которых требовали SUDO, а некоторые - нет.

К счастью, хорошие люди в Интернете решили эту проблему для вас с помощью инструмента под названием RVM.

RVM позволяет развертывать каждый проект в собственной полностью автономной и выделенной среде — от определенной версии ruby ​​до точного набора необходимых гемов для запуска вашего приложения. Наличие точного набора драгоценных камней также позволяет избежать конфликта версий между проектами, что может привести к трудно отслеживаемым ошибкам и часам выпадения волос.

http://beginrescueend.com/

Сначала загрузите RVM

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

После этого вы захотите открыть новое окно терминала.

Очистите. Если у вас странно установлены драгоценные камни, вам нужно их удалить. Перейдите в свой корневой каталог и sudo избавьтесь от них. Вы можете увидеть их все с помощью команды gem list

cd 
sudo gem list
sudo gem uninstall foreman heroku

Установите ruby. Вы должны сделать это в подкаталоге вашего приложения. Я выбрал 1.9.3

cd myApp
rvm install 1.9.3

Добавьте любые драгоценные камни, которые вам нужны. Для меня это были только Форман и героку.

cd myApp
gem install foreman heroku

Казалось, это работает.

person digiguru    schedule 29.01.2012

Попробуй это. В Procfile сделать

web: node ./bin/www
person Jim Syyap    schedule 19.11.2014