Tyl*_* V. 0 ruby rubygems compass
12 月 15 日,rb-inotifygem更新到0.10.0现在需要的版本Ruby 2.2或更高版本。该compass宝石具有的运行依赖rb-inotify >= 0.9这似乎现在自动包括版本0.10.0。因此在Ruby 1.9.3上安装时compass,安装rb-inotify失败,导致安装compass失败。
我是否正确理解了这一点?已rb-inotify现破裂喜欢简单的命令gem install compass上的Ruby 1.x的?在不更新 Ruby 的情况下解决此问题的最佳方法是什么?
我是否正确理解了这一点?已
rb-inotify现破裂喜欢简单的命令gem install compass上的Ruby 1.x的?
不它不是 rb-inotify破坏任何东西。
该compass宝石具有的依赖关系rb-inotify >= 0.9,这意味着笔者compass宝石声称,北斗将与每个版本在未来有史以来发布,从现在甚至万年,不管有多少变化也有。正如您所发现的,这种说法是错误的,所以问题在于 Compass,而不是 rb-inotify。
我在 rb-inotify 主页上找不到版本控制策略,因此依赖任何特定的版本控制策略(尤其是依赖“永远不会有向后不兼容的更改,永远”)是错误的。即使我们假设 rb-inotify 遵循 SemVer,但 SemVer 实际上允许在 1.0 之前进行任意更改。
简而言之:Compass 中的 gem 依赖是错误的。它应该类似于rb-inotify == 0.9.0或至多 rb-inotify ~> 0.9.0,但显然不是“任何比 0.9.0 更新的版本,无论有多少变化”。
在不更新 Ruby 的情况下解决此问题的最佳方法是什么?
如果您在安装 Compass之前安装了rb-inotify0.9.0 版本并且仅安装了该版本(或至少没有更新的版本),那么 gem 要求已经得到满足,并且 RubyGems 不会尝试安装任何更新版本的(除非并且直到您安装另一个gem 需要更高版本)。rb-inotify
现在,一个你没有问过的问题:
解决此问题的最佳方法是什么?
您真的应该考虑更新您的 Ruby 安装。我假设“Ruby 1.9.3”实际上是指“YARV 1.9.3”,自 2015 年 2 月 23 日以来,它没有得到维护、更新、收到错误修复,最重要的是收到安全修复。