Установка Sproutcore с RubyGems не удалась в геме haml - PullRequest
0 голосов
/ 09 мая 2011

Я пытаюсь установить sproutcore на windows xp vm (virtualbox), для разработки, используя RubyGems. Когда gems достигает haml-3.0.25.gem, он останавливается с ошибкой:

gem install sproutcore -V
...
ERROR:  While executing gem ... (Zlib::DataError)
invalid stored block lengths

Я пробовал как Ruby 1.8.7 и 1.9.2, так и RubyGems 1.7.1 и 1.8.1. Я попытался загрузить haml 3.1.1 с помощью git и установить его вручную, но грабли не установились. Там сказано что-то о 'lib / haml' не найдено. Каталог существует.

Другие гемы устанавливаются просто под все комбинации, которые я пробовал. Я даже пытался установить его под моей операционной системой (Win 7 32-bit), но он выдал ту же ошибку. Установка хамла сама по себе немного изменяет сообщение об ошибке:

gem install haml -V
...
ERROR:  While executing gem ... (Zlib::DataError)
invalid code lengths set

Zlib сжимает и распаковывает потоки данных из того, что я прочитал, поэтому кажется, что гем хамла может быть поврежден (хотя я сомневаюсь).

Я сошел с ума и нигде не смог найти полезного совета.

Ответы [ 3 ]

1 голос
/ 10 мая 2011

Отдельное спасибо @saner за его вклад. После большого разочарования я наконец установил sproutcore на виртуальную машину Windows XP, работающую на хосте Windows 7.

1) Загрузите и установите Ruby 1.9.2-p180 (не забудьте отметить опцию включения каталога bin в переменную PATH). 2) Загрузите DevKit 4.5.1 и распакуйте его.
3) Откройте командную строку и перейдите к извлеченному каталогу.
4) Выполнить:

ruby dk.rb init
ruby dk.rb review
ruby dk.rb install

5) Загрузите RubyGems 1.7.2 и запустите setup.rb
6) Из командной строки запустите

gem install haml -v 3.0.24
gem install eventmachine --pre
gem install sproutcore --pre

Вот так.
Наслаждайтесь.

0 голосов
/ 08 декабря 2015

Я знаю, что это действительно старый вопрос, но, поскольку я только что столкнулся с той же проблемой, я решил добавить свои соображения по этому вопросу.

Итак, это произошло, когда я пытался установить один и тот же набор драгоценных камней на две разные машины с разными архитектурами, в разных местах и ​​соответственно в разных сетях. То есть - мой домашний mac и удаленный сервер linux.

Итак, один конкретный гем (dm-sqlite-adapter) не удалось установить на обе машины, и я даже пробовал его пару раз, но всегда с одним и тем же результатом:

$ gem install dm-sqlite-adapter 
ERROR:  While executing gem ... (Zlib::DataError)
    invalid code lengths set

Затем я потратил несколько минут на поиск решения в сети, включая чтение этой ветки.

Так как я не нашел удовлетворительного ответа и не был доволен идеей переустановки всего, решил действовать глупо и попробовал gem install еще раз .. И это сработало. Затем попробовал другую машину - работал как шарм.

Итак, в заключение я бы предположил, что проблема возникла из-за удаленного репозитория, и, возможно, гем даже не загрузился вообще (я забыл проверить это, прежде чем успешно установить его). Но, как я уже сказал, это всего лишь предположение ..

0 голосов
/ 09 мая 2011

Мне удалось установить SproutCore на Ruby 1.9.2:

  1. Установить Ruby 1.9.2-p180
  2. gem install sproutcore --pre
  3. gem install eventmachine --pre
  4. камень удалить тонкий
  5. драгоценный камень установить дворняга

Мне нужно было удалить тонкий, потому что запуск sc-сервера закончился ошибкой, SproutCore будет использовать mongrel вместо thin.


Обновление:

Я не упомянул, что использую RubyGems 1.7.2 и установил DevKit и Cygwin.

Я удалил все версии SproutCore, Mongrel и Haml, затем набрал:

  1. gem install sproutcore --pre, SproutCore v1.6.0.beta.1 был установлен.
  2. eventmachine --pre, eventmachine (1.0.0.beta.3 x86-mingw32) был установлен

SproutCore работает с этой настройкой, использовать mongrel не нужно.

Моя конфигурация: sproutcore (1.6.0.beta.1), ruby ​​1.9.2p180, гем 1.7.2, тонкий (1.2.11 x86-mingw32), eventmachine (1.0.0.beta.3 x86-mingw32) , haml (3.0.25), gcc версия 4.5.0 (GCC)

...