首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Heroku中使用Hunspell

在Heroku中使用Hunspell
EN

Stack Overflow用户
提问于 2011-08-15 03:43:17
回答 4查看 1K关注 0票数 0

我正在构建一个Rails应用程序,它使用Hunspell和hunspell-ffi gem,以便Ruby可以与之交互。我正在将应用程序部署到heroku,但不幸的是,它需要在服务器上安装Hunspell才能让gem工作。

有什么方法可以让我在Heroku上安装猎杀吗?或者我必须迁移到EC2?

提前感谢:)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-15 04:43:09

除非我弄错了或者有什么改变(我找不到任何证据),否则你不能在Heroku上安装外部本地库。如果还没有安装这个库(我认为对于ImageMagick和其他系统来说就是这种情况),那么您将无法使用gem。

票数 0
EN

Stack Overflow用户

发布于 2013-02-12 17:51:06

您需要构建所需的Hunspell库,并将其直接包含在Heroku项目中。

Heroku在64位Ubuntu上运行,因此二进制文件必须在该系统下编译。最好的方法是简单地使用Heroku's Vulcan build server在Heroku实例上编译。

为Heroku编译

  1. gem install vulcan
  2. vulcan create vulcan-compile-me的最后一个参数是您自己的应用程序名称。
  3. Download Hunspell source
  4. Extract
  5. vulcan build -v -s ./hunspell-1.3.2告诉Vulcan构建它,并自动将完成的产品下载到/tmp/hunspell..

构建服务器需要cloudant add-on,它是自动安装的,但您必须确保有一个经过验证的(添加信用卡的) Heroku帐户。如果在没有构建输出的第六步中得到错误,那么执行heroku addons:add cloudant --app vulcan-compile-me

添加到您的项目

  1. 从/tmp
  2. 中解压缩Heroku Vulcan build tar,将整个文件夹复制到项目根目录Heroku中的vendor/hunspell中,以便在其中查找库:heroku config:add LD_LIBRARY_PATH=vendor/hunspell/lib.

安装字典

从Open Office下载一些词典并将其添加到项目中。一个好的位置是根级别的名为dictionaries的文件夹。然后,在Ruby中初始化Hunspell时会引用此路径。

http://extensions.services.openoffice.org/dictionary

ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/OpenOffice/contrib/

使用

安装你最喜欢的Hunspell gem,我用的是hunspell-ffi。有一个newer gem for Hunspell,但我更喜欢以前的FFI。要使用字典,请使用字典、文件夹路径和语言(与字典文件名匹配的语言)初始化Hunspell对象。

代码语言:javascript
复制
dict = Hunspell.new("dictionaries", "en_US")

if dict.check('caribean') == false
    suggestions = dict.suggest('caribean')
    if (suggestions.size)
        correction = suggestions.first # returns 'caribbean'
    end
end

为更复杂的项目提供服务

您还可以通过将第一步中由Vulcan服务器构建的tar放入可公共访问的服务器(如Google Storage )中,然后更改Heroku构建包以在每次启动时下载tar,从而将库添加到您的项目中。

  1. heroku config:set BUILDPACK_URL=https://github.com/peterkeen/heroku-buildpack-vendorbinaries.git
  2. The供应商构建包在根级别查找.vendor_urls文件,其中包含指向要安装的tar球的HTTP链接(需要以新行结束才能工作)。http://commondatastorage.googleapis.com/developer.you.com/hunspell-heroku-1.3.tgz
  3. Vendoring将tar解压到根文件夹中,因此Heroku设置的lib路径将仅为"lib“。heroku config:add LD_LIBRARY_PATH=lib
票数 3
EN

Stack Overflow用户

发布于 2011-08-15 04:28:05

签出此url:http://gems-summary.heroku.com/2011-07-19

Heroku对gem社区的支持之多令人惊讶。因此,您所需要做的就是将gem添加到您的包中,因为Hunspell位于rubygems上,安装包,然后部署。

Gemfile

代码语言:javascript
复制
source 'http://rubygems.org'
gem 'rails', '3.0.5'
gem 'hunspell'

然后添加到git:

代码语言:javascript
复制
git add .
git commit -m 'added hunspell'

然后捆绑:

代码语言:javascript
复制
bundle

并部署:

代码语言:javascript
复制
 git push heroku
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7059245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档