我已经 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/