在 heroku 上安装 MaxMind GeoIP ruby 库
Posted
技术标签:
【中文标题】在 heroku 上安装 MaxMind GeoIP ruby 库【英文标题】:Installing MaxMind GeoIP ruby library on heroku 【发布时间】:2012-07-06 19:22:12 【问题描述】:我有一个在 heroku 上运行的 Rails 应用程序。现在我想运行一个 rake 任务(它使用我的 rails 应用程序模型)并使用 MaxMind GeoIP 数据库 (http://www.maxmind.com/app/geolite) 对每条记录进行地理标记。
在 Ruby 应用程序中使用此数据库涉及:
-
构建它的 C-API (http://www.maxmind.com/app/c) 然后
为此构建 Ruby 绑定 (http://www.maxmind.com/app/ruby)。
我可以在我的本地计算机上执行此操作,并成功地从 IP 地址获取国家代码。但是我不知道如何在 Heroku 上安装这些库。据我了解,ruby 绑定不能作为带有本机扩展的 gem(heroku 可以很好地处理)。他们的 C-API 似乎还有一些其他依赖项,这让我想知道这样的事情是否可能发生。
那么有人在 Heroku 上安装了 MaxMind GeoIP(又名 Net::GeoIP)吗?如果是怎么办?
我可以通过将本地设置指向生产数据库来从笔记本电脑上运行 rake 任务。在此之前,我想知道是否可以从 Heroku 设置本身运行它以避免延迟或连接中断等。
【问题讨论】:
【参考方案1】:我发现了一个 gem,它捆绑了 MaxMind C-API 并提供了它自己的 Ruby API。它工作得很好 - http://rubygems.org/gems/geoip
我会暂时接受这个作为答案。但是,如果有人能告诉我如何在 Heroku 上为 Ruby 安装二进制扩展,那就太好了。
【讨论】:
以上是关于在 heroku 上安装 MaxMind GeoIP ruby 库的主要内容,如果未能解决你的问题,请参考以下文章