gpt4 book ai didi

ruby - 您如何为 Linux 的 ruby​​ gem 预编译 native 扩展?

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:10 26 4
gpt4 key购买 nike

我们有一个 ruby​​ 应用程序,该应用程序依赖于具有 native 扩展的 gem(在本例中为 Nokogiri)。但是,由于各种原因,我们无法在我们的生产主机上安装该 gem 的构建先决条件(例如 build-essential、libxslt-dev、ruby-dev 等)。

是否有(标准的?)方法可以使用预构建的 native 扩展重新打包 gem?

这应该是可能的(在 Windows 上执行此操作似乎是相当标准的),但我找不到关于该主题的任何文档。

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

更新:我们正在使用 Bundler,所以我们希望在一天结束时仍然有一个 gem 可以安装,不是 debian 包

最佳答案

终于找到了一种对使用 rake-compiler 的 gem 执行此操作的方法用于构建他们的 C 扩展(其中大部分)。

您需要在一台与您要部署到的机器相同的机器上执行以下操作,否则它根本无法工作:

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

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

解压要重建的 gem:

$ gem unpack nokogiri

构建 Shiny 的新预编译 gem:

$ rake native gem

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

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

关于ruby - 您如何为 Linux 的 ruby​​ gem 预编译 native 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com