gpt4 book ai didi

ruby - 如何使用 native 扩展重新打包 ruby​​ gem

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:24 27 4
gpt4 key购买 nike

我需要在没有安装任何开发工具的生产服务器上安装一些 ruby​​ gem(全部带有 C 扩展)。我想先在开发服务器上构建 gems,然后在生产服务器上重新打包并安装生成的 native gems。

但是,似乎没有标准方法可以将 gem 与 native 扩展 打包以进行重新分发。我知道 rake-compiler,但没有一个相关的 gem 可以开箱即用。具体来说,我正在使用 json-1.7.5、rb-inotify-0.8.8 和 ffi-1.2.1 gem。

感谢任何有关如何完成此任务的指示或有关该主题的文档。

最佳答案

使用 Jordan Sissel 的 fpm您可以采用各种输入存档(包括 gem)并将它们编译并打包为(除其他外)DEB 或 RPM。

An example将 json gem 编译成 deb 包如下:

cd /tmp
fpm -s gem -t deb json

这将下载最新版本的 json gem 并在 /tmp 中创建一个 rubygem-json-1.5.7-1.amd64.deb 存档,您可以安装在你的服务器上。请注意,编译框和最终服务器需要完全相同。至少分布和位数、ruby 版本及其文件布局以及可用的可加载库应该相同。基本上你的上游发行版处理的所有约束......

也就是说,从长远来看,我发现在目标服务器上安装编译器并在服务器上使用 rbenv 或 rvm 会容易得多。对于大多数中小型安装,处理起来要容易得多,因为您不需要预编译所有内容并将其发送到您的服务器。

关于ruby - 如何使用 native 扩展重新打包 ruby​​ gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940957/

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