我在Amazon Web Services上运行Ubuntu实例,用于开发Ruby on Rails应用程序(用于测试运行本地rails服务器),并将应用程序推送到Heroku进行部署。
直到昨天我想将开发数据库的内容推送到生产而不仅仅是应用程序本身时,这个设置对我没有任何问题。经过一些快速的谷歌搜索,这似乎很容易通过使用Taps
来完成。我不确定是否已经使用Heroku Toolbelt预装了水龙头(这是我一直使用的),所以在关注Heroku上的文档后,我只是运行了命令rake db:push
- 这返回了错误:< / p>
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替换),因为人们似乎得到了正确的结果。
我犹豫不决,因为我不想让工具带和独立的宝石相互竞争,所以我用谷歌搜索了如何卸载heroku工具带(似乎没有一个好的heroku提供的解决方案 - 可能在heroku打开一张票......),但是我按照这个link的指示,有人应该打我,因为它只是以下命令:
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 ...]
所以,我决定尝试回到开头而不用担心事情,所以我卸载了一个简单的sudo gem uninstall heroku
的heroku gem,删除了相关的可执行文件,然后尝试重新安装按照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(请再次打击我)删除了明显重要的内容,现在安装工具带并没有注意到它们丢失了我没有heroku或水龙头就被困住了! (另外,令人不安的是,heroku没有提供卸载工具带的干净方法 - 这会使这样的事情变得更加复杂)
非常感谢帮助。
答案 0 :(得分:10)
sudo apt-get install heroku-toolbelt
所以我最终不得不通过运行
删除带有apt-get的heroku和heroku-toolbelt包sudo apt-get --purge remove heroku
sudo apt-get --purge remove heroku-toolbelt
然后用
重新安装工具带wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
现在一切看起来都很好看了。
答案 1 :(得分:0)
我只想补充一点,如果你有heroku-accounts插件,你还需要检查〜/ .gitconfig 文件中是否存在旧帐户,并删除它们。否则,新安装的工具带和帐户插件将导致完全无法工作的环境。