Правильно ли я понял?* * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * 100 * * rb-inotify
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 100 '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *' '101' *.gem зависит от rb-inotify >= 0.9
, что означает, что автор compass
gem утверждает, что Compass будет работать с каждой версией, когда-либо выпущенной в будущем, даже через 10000 лет, независимо от того, сколько изменений.Как вы обнаружили, это утверждение неверно, поэтому проблема в Compass, а не в rb-inotify.
Я не смог найти политику управления версиями на домашней странице rb-inotify, поэтому полагаюсь на какую-либо конкретную версиюполитика (и, в частности, полагаться на то, что «никогда не будет изменений, несовместимых с прошлым») просто неверна.Даже если мы предположим, что rb-inotify следует за SemVer, SemVer фактически допускает произвольные изменения до 1.0.
Короче: зависимость от гемов в Compass неверна.Это должно быть что-то вроде rb-inotify == 0.9.0
или самое большее rb-inotify ~> 0.9.0
, но явно не "любая версия новее, чем 0.9.0, независимо от того, сколько изменений".
Каков наилучший способ исправить это без обновления Ruby?
Если вы устанавливаете rb-inotify
версия 0.9.0 и только эту версию (или, по крайней мере, не более новую версию) до установки Compass, тогда требование к гему будет уже выполнено, и RubyGems не будет пытаться установить какую-либо более новую версию rb-inotify
(до тех пор, пока вы не установите другой гем, для которого требуется более высокая версия).
Теперь вопрос, который вы не задавали:
Каков наилучший способ исправить это?
Вы действительно должны подумать об обновленииРубиновая установка.Я предполагаю, что под "Ruby 1.9.3" вы на самом деле имеете в виду "YARV 1.9.3", который не поддерживался, не обновлялся, не получал исправления и, самое главное, получал исправления безопасности с 23 февраля 2015 года.