ruby-on-rails – 我可以合并系统库(例如libxml2)我编译成一个我可以部署到Heroku的gem(例如nokogiri)吗?

Nokogiri在转换为UTF-8字符时出现问题,后者最终来自libxml2,特别是版本2.7.6,这是Ubuntu 10.04 LTS上支持的最高版本.该错误已在2.7.7及更高版本中修复,但由于我们的应用程序托管在Heroku(bamboo-ree-1.8.7堆栈,基于Ubuntu 10.04)上,我们必须使用2.7.6版本,并继续体验bug,除非:

>有人可以/已经攻击了nokogiri以解决问题
> Canonical颠覆Ubuntu 10.04支持的libxml2版本(和/或Heroku在其堆栈中更新libxml2)
>我可以想办法让nokogiri使用libxml2版本,我可以将其与应用程序捆绑在一起,以便可以部署到Heroku.

很高兴听到有关1或2的任何反馈,但很好奇3是否可行.以下是我所知道的可能性:

> Nokogiri可以链接到位于非标准位置的图书馆 – http://nokogiri.org/tutorials/installing_nokogiri.html
>以这种方式创建的gem可以安装到供应商/宝石,因此优先于系统宝石

我的问题是,我可以将更高版本的libxml2包含在应用程序中,以便编译的供应商宝石在我提交它并将其推送到Heroku时使用它吗?

解决方法

它不是最用户友好的解决方案,但这是我曾经做过的一次获得自定义版本的libpq.我是在雪松上做过的,但如果你先进入tmp,它可能适用于竹子

> heroku运行bash
>卷曲你想要建立的东西的来源
>建立它
>将二进制文件从dyno中发送出去
>供应商建造的二进制文件在供应商/任何
> heroku config添加LD_LIBRARY_PATH = / app / vendor / whatever

对不起,还没有更好的方法来获得定制的binaires.祝好运.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...