“bin / rails:没有这样的文件或目录”在Heroku上有ruby2和Rails 4
在遵循Michael Hartl的Ruby on Rails教程的Rails 4 Beta版本的同时,我的应用程序无法在Heroku上启动,但是使用bundle exec rails server
在本地运行。 检查heroku logs -t
显示以下错误:
$ heroku[web.1]: State changed from crashed to starting $ heroku[web.1]: Starting process with command `bin/rails server -p 33847 -e $RAILS_ENV` $ app[web.1]: bash: bin/rails: No such file or directory $ heroku[web.1]: Process exited with status 127 $ heroku[web.1]: State changed from starting to crashed $ heroku[web.1]: Error R99 (Platform error) -> Failed to launch the dyno within 10 seconds $ heroku[web.1]: Stopping process with SIGKILL
如果我heroku run bash
并检查bin
目录,我可以看到没有一个rails
可执行文件:
~$ ls bin erb gem irb node rdoc ri ruby testrb
我做错了什么? 我完全按照教程。
自从我升级到rails 4.0.0以来,我也遇到了这个问题
运行这个命令
rake rails:update:bin
你可以去这里获取更多信息https://devcenter.heroku.com/articles/rails4
经过一段时间的努力之后,我注意到我的Rails 4项目有一个/bin
目录,这与我克隆的一些旧的Rails 3项目不同。 /bin
包含3个文件, bundle
, rails
和rake
,但是这些文件并没有到Heroku,因为我的全局.gitignore
文件中有bin
。
如果您使用Git和其他语言(Java等),这是一个非常常见的忽略规则,所以要解决这个问题:
- 从
~/.gitignore
删除bin
- 运行
bundle install
- 用
git add .
提交你的修改git add .
和git commit -m "Add bin back"
- 用
git push heroku master
你的修改推送到Heroku
步骤 :
bundle config --delete bin
#closuresBundler的存根生成器
rake rails:update:bin
#使用新的Rails 4可执行文件
git add bin or git add bin -f
#将bin /添加到源代码控制
git commit -a -m "you commit message"
git push heroku master
heroku open
我有这个问题,因为我的~/bin
目录的权限是644
而不是755
。 运行rake rails:update:bin
在本地rake rails:update:bin
(在Mac / * nix上),然后推送修改解决了问题。
我们在rails 4应用程序中没有myapp / bin目录,所以我们创build了一个,然后复制到我的app / script / rails文件中,再加上rvm / ruby / bin下的bundle和rake文件,然后添加到git的回购,推到heroku,一切都很好。
我可以确认运行rake rails:update:bin
works,正如@Ryan Taylor所说的。
我想我有这个问题,因为我最初在Windows上创build了这个Rails应用程序。 在Linux上运行上面的命令解决了我。
此外,从Windows更改为Linux进行开发,删除Gemfile.lock
文件并运行bundle install
生成它是一个好主意,没有列出Windows特定的gem。
我有和你一样的问题。 这个问题在于bin文件夹从未被推送到heroku存储库。
我看着,我看了看,然后再次看了一眼,bin /文件夹的.gitignore文件中没有规则。
然后,在经历了很多痛苦和痛苦之后,我意识到在创build一个全局.gitignore几个月之前,我将忽略所有存储库的所有bin文件夹(为什么是主为什么?)。
我删除了全局的.gitignore,一切正常。