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 版本,并继续体验错误,除非:
- 有人可以/已经破解了 nokogiri 来解决这个问题
- Canonical 提高了 Ubuntu 10.04 支持的 libxml2 版本(和/或 Heroku 更新了其堆栈中的 libxml2)
- 我可以想出一种让 nokogiri 使用 libxml2 版本的方法,我可以将其与应用程序捆绑在一起,以便将其部署到 Heroku。
当然很高兴听到有关 1 或 2 的任何反馈,但很好奇 3 是否可行。这是我所知道的可能:
- Nokogiri 可以链接到位于非标准位置的库 -http://nokogiri.org/tutorials/installing_nokogiri.html http://nokogiri.org/tutorials/installing_nokogiri.html
- 通过这种方式创建的gem可以安装到vendor/gems,因此优先于系统gems
我的问题是,我可以在应用程序中包含更高版本的 libxml2 吗?这样,当我提交它并将其推送到 Heroku 时,已编译的、供应商的 gem 就会使用它?
这不是最用户友好的解决方案,但这是我曾经做过的获取 libpq 的自定义版本的方法。我在雪松上做到了,但如果你先进入 tmp,它可能适用于竹子
- Heroku 运行 bash
- 卷曲你想要构建的源代码
- build it
- 将二进制文件从 dyno 中发送出去
- 供应商 在供应商/其他中构建的二进制文件
- heroku 配置:添加 LD_LIBRARY_PATH=/app/vendor/whatever
抱歉,目前还没有更好的方法来获取自定义二进制文件。祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)