Итак, я разрабатываю Sinatra для обоих окон и Linux. Проблема в том, что я использую Thin вместо Webrick, а eventmachine для окон работает только с предварительной версией, в то время как linux использует последнюю стабильную версию. в Gemfile вы, конечно, не может включать в себя один и тот же камень с различными версиями, как так:с помощью связки для загрузки различных версий драгоценных камней для разных платформ
gem "eventmachine", "~> 1.0.0.beta.4.1", :group => :development_win
gem "eventmachine", group => :development_linux
gem "thin
мне было интересно, если есть способ обойти это, возможно, используя один Gemfile для окон и один Gemfile для Linux, то, будет ли команда загружаться одна или другая.
Альтернативно, существует возможность, возможно, в git управлять только gemfile для двух разных платформ, возможно, через ветку только для файла (не знаю, возможно ли это из того, что я читал в ветвях git).
hmm, первое решение вызывает ту же ошибку, что и в gemfile. Условное заявление работает нормально. – indigo0086
И второй подход недействителен, поскольку он сохраняет ту или иную версию gem в 'Gemfile.lock'. Он не может хранить оба. Таким образом, если вы подготовите 'Gemfile.lock' на машине Win32 dev, тогда разверните ее в Linux, вы получите ту же неправильную версию. Таким образом, я все еще ищу приемлемое решение. –
Платформенный подход хорошо работает при условии, что для разных платформ нужны только разные (названные) драгоценные камни, возможно даже зафиксировать Gemfile.lock и сохранить его стабильным (в отличие от подхода if-else). – prusswan