Rubygems:如何添加特定于平台的依赖项?

标签 ruby rubygems

我已经 a ruby gem每个操作系统都有不同的依赖关系。我必须明确地写下所有这些:

On Mac OS X:

gem install livereload

on Linux:

gem install rb-inotify livereload

on Windows:

gem install eventmachine-win32 win32-changenotify win32-event livereload

我可以稍微调整一下 gemspec,使每个操作系统的安装说明看起来都像普通的 gem install livereload 吗?

最佳答案

概述了执行此操作的正确方法 here .由于 gemspec 是在打包时评估的,因此您需要在 native 扩展中进行评估。别担心,它并没有那么可怕,因为它仍然只是 Ruby 代码(没有编译 C 或任何东西)。

我们目前正在将这种方法用于 OpenShift 的一些客户端工具 (source) .然后在你的 gemspec/Rakefile 中,你将添加一个扩展而不是添加依赖项。请注意,该文件需要命名为 ext/mkrf_conf.rb 才能正常工作。

关于Rubygems:如何添加特定于平台的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596606/

相关文章:

ruby - 运行 `bundle install` 安装缺少的 gems

ruby - 如何从标签中获取 "href"

ruby - 如何创建从多个数组中选择的单个元素的每个组合?

ruby - 在原始套接字上接收 UDP 数据报?

ruby-on-rails - 如何计算多对多模型的特征向量?

ruby - "with(&block)"在 Ruby 中是什么意思?

ruby-on-rails - ruby 版本中的 p180 是什么?

ruby - 无法使用 ruby​​ 2.0 安装 bundler 1.3.0

ruby-on-rails - File.open 和 YAML.load_file 显示同一文件的不同内容

ruby-on-rails - 有没有办法通过命令行向 Rails 添加路由?