当前位置:  开发笔记 > 后端 > 正文

你如何预编译linux的ruby gem的原生扩展?

如何解决《你如何预编译linux的rubygem的原生扩展?》经验,为你挑选了1个好方法。

我们有一个ruby应用程序依赖于具有原生扩展的gem(在这个特定情况下Nokogiri).但是,由于各种原因,我们无法在生产主机上安装该gem的构建先决条件(例如build-essential,libxslt-dev,ruby-dev等).

是否有(标准?)方法重新打包预先构建的原生扩展的gem?

它应该是可能的(对Windows来说这似乎是相当标准的),但是我找不到关于这个主题的任何文档.

请注意,我们只需要支持单个平台,所有系统库的已知版本(Ubuntu 9.04 Server 64位,Ruby 1.8.7).

更新:我们正在使用Bundler,所以我们想要在一天结束时安装一个gem,而不是debian软件包.



1> Jacob..:

最后找到了一种方法来为使用rake-compiler构建C扩展(其中大部分都是)的gem执行此操作.

您需要在与要部署到的计算机相同的计算机上执行以下操作,否则它将无法工作:

安装构建C扩展的构建先决条件:

# apt-get install build-essentials ruby-dev # ... etc
# gem install rake-compiler

解压缩要重建的gem:

$ gem unpack nokogiri

构建闪亮的新预编译gem:

$ rake native gem

您现在可以在没有安装任何构建工具的计算机上安装本机gem:

$ gem install pkg/nokogiri-1.4.3.1-x86-linux.gem 
Successfully installed nokogiri-1.4.3.1-x86-linux
1 gem installed

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有