我正在 Amazon Web Services 上运行一个 Ubuntu 实例,用于开发 Ruby on Rails 应用程序(用于测试运行本地 Rails 服务器),并将该应用程序推送到 Heroku 进行部署。
这个设置对我来说一直没有问题,直到昨天我想将开发数据库的内容推送到生产环境而不仅仅是应用程序本身。经过一些快速谷歌搜索后,这似乎可以通过使用轻松完成Taps
。我不确定 Heroku Toolbelt 是否预装了 Taps(这是我一直在使用的),所以在遵循 Heroku 上的文档之后,我只是运行了命令rake db:push
- 这返回了错误:
Taps Load Error: cannot load such file -- taps/operation
You may need to install or update the taps gem to use db commands.
On most systems this will be:
sudo gem install taps
很容易,对吧?错误的。运行后sudo gem install taps
(并观察安装运行没有任何问题),我重新运行命令rake db:push
只是发现自己也面临同样的情况Taps Load Error
。考虑到 Heroku 服务之前运行起来是多么容易,第一次尝试时事情进展得并不顺利,这有点令人惊讶。
经过更多的谷歌搜索后,我发现了一个两年多前在 Heroku 的 github 页面上提出的问题,直到 3 个月前才收到处理这个问题的人的帖子,所以在阅读了一些推荐后,我决定尝试直接安装 heroku gem(尽管它已被弃用并被 Toolbelt 完全取代),因为人们似乎得到了正确的结果。
我很犹豫,因为我不想让工具带和独立的 gem 相互竞争,所以我在谷歌上搜索了如何卸载heroku工具带(这似乎没有一个很好的heroku提供的解决方案 - 可能会开一张票在heroku上...),但我遵循了这方面的说明link http://johntwang.com/blog/2011/09/13/remove-heroku-toolkit/,有人应该打我,因为这只是以下命令:
rm -rf /usr/local/heroku
rm -rf /usr/bin/heroku
这些命令不考虑依赖关系等...我认为这是部分(如果不是完全)我的问题的根源。此时,我运行了命令sudo gem install heroku
,收到弃用警告,然后简单地尝试运行命令heroku login
作为检验它是否安装正确的试金石,但我收到了一个可怕的结果Gem:LoadError
这就是说
Could not find heroku (>= 0) amongst [... a bunch of gems ...]
所以,我决定尝试回到开始,不要担心事情,所以我卸载了 heroku gem,这是一个简单的sudo gem uninstall heroku
,删除关联的可执行文件,然后尝试按照 Heroku 上列出的命令重新安装 Toolbelt:
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
在屏幕上打印出一堆看起来不错的输出后,我认为一切都会好起来的,但安装过程的最后消息是:
heroku-toolbelt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 102 not upgraded.
这就是我所在的位置,我按照以下步骤删除了明显重要的内容link http://johntwang.com/blog/2011/09/13/remove-heroku-toolkit/(请再打我一下),现在安装工具带并没有注意到它们丢失了,我被困在没有heroku或水龙头的情况下! (此外,令人不安的是,heroku 没有提供一种干净的方法来卸载工具带 - 这将使类似的事情变得不那么复杂)
非常感谢您的帮助。