Развертывание бинарных гемов на другой платформе - PullRequest
0 голосов
/ 10 октября 2008

У меня есть приложение Rails, которое мне нужно развернуть. Вот факты:

  • Приложение было разработано для Windows и требует бинарных гемов Windows
  • Приложение должно быть развернуто на общем сервере Open Solaris (Joyent)
  • У меня нет прав для установки гемов на сервер
  • Для недвоичных самоцветов я могу просто сделать rake gems:unpack локально и затем загрузить; это работает просто отлично.

Итак, мой вопрос, как мне получить бинарные драгоценные камни, которые мне нужны, на мой рабочий сервер?

Ответы [ 5 ]

2 голосов
/ 13 октября 2008
  • Приложение было разработано для Windows и требует бинарных гемов Windows
  • Приложение должно быть развернуто на общем сервере Open Solaris (Joyent)

Вы понимаете, что не можете запускать двоичные файлы Windows на открытых соляризах. Windows на самом деле полностью отличается от Solaris ...

Если драгоценные камни принадлежат третьей стороне, вы можете загрузить предварительно упакованные бинарные версии для соляриса, которые кто-то другой выпустил. Затем вы можете поместить их в каталог vendor и загрузить их оттуда вместо установки гема.

Если вы не можете получить предварительно упакованные бинарные файлы для соляриса, вам необходимо получить собственную машину соляриса (с использованием Virtual PC, VMWare, VirtualBox и т. Д.), Использовать ее для компиляции гемов, а затем извлекать двоичные файлы вне.

Если на самом деле у вас есть только исходный код, который работает на Windows (например: вы создали его самостоятельно, или тот, кто предоставил драгоценный камень, только разработал его для работы с Windows), вы облажались. Вам нужно будет найти кроссплатформенную замену.

Было бы полезно, если бы вы сказали нам , о каких драгоценных камнях вы говорите, чтобы люди могли найти более конкретное решение и точно объяснить, что происходит.

1 голос
/ 12 октября 2008

Запросите, чтобы администратор общего сервера установил для вас гемы. Если они являются «стандартными» гемами, доступными из авторитетного домена, это действительно не должно быть таким уж большим делом, мой поставщик общих серверов делает это постоянно.

0 голосов
/ 10 октября 2008

Поставщик всего.

Это делает две вещи. Это делает ваше приложение развертываемым независимо от установленных в системе гемов, а во-вторых, оно замораживает конкретную версию гема для вашего приложения. Так что, если кто-то еще проверит это из вашего инструмента SCM, у него не будет несоответствия версий, и он будет работать без проблем.

Удачи!

0 голосов
/ 10 октября 2008

Вам, вероятно, придется использовать кросс-компилятор для таргетинга на Solaris, работающий в Windows.

Сборка кросс-компиляторов, как правило, сложный и подверженный ошибкам процесс. Я делал это раньше, и сложность не для слабонервных. В идеале вы должны найти кого-то, имеющего доступ к сборочной машине Solaris, и попросить его создать двоичный файл для вас.

Если вам нужно пойти по пути кросс-компиляции, я подозреваю, что решение будет заключаться в установке cygwin и использовании его инструментов сборки для создания кросс-компилятора Solaris, размещенного на cygwin. Я бы посоветовал взглянуть на проект crosstool , который предоставит вам сценарии, которые обрабатывают некоторые детали для вас.

0 голосов
/ 10 октября 2008

Бинарные драгоценные камни - настоящая проблема. Для всех других самоцветов вы можете использовать каталог vendor/gems (возможно только с Rails 2.1 +).

...