Довольно потерянный с Ruby Gems и установкой землянки

Я хочу использовать Ruby Gem под названием Dugway от Big Cartel для создания тем в локальной среде, а не на их фактическая платформа для целей разработки.

Я никогда раньше не использовал Ruby или Gems, но, насколько я понимаю, мне нужно было сначала установить Ruby и DevKit. Я скачал и установил Ruby 2.0.0-p247 (x64) и DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe, затем извлек DevKit в папку Ruby.

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

Я открыл командную строку «Пуск с Ruby», набрал cd C:\Ruby200-x64\devkit, а затем ruby dk.rb init и получил следующее:

    Initialization complete! Please review and modify the auto-generated
    'config.yml' file to ensure it contains the root directories to all
    of the installed Rubies you want enhanced by the DevKit.

Я просмотрел файл, и под комментарием у него есть - C:/Ruby200-x64, что, как я полагаю, означает, поскольку я ничего не использовал раньше, мне все равно нечего изменять.

Теперь, чтобы установить, я набрал ruby dk.rb install, и мне показали:

    [INFO] Updating convenience notice gem override for 'C:/Ruby200-x64'
    [INFO] Installing 'C:/Ruby200-x64/lib/ruby/site_ruby/devkit.rb'

Затем он сказал мне выполнить тестовую установку, поэтому я набрал gem install json --platform=ruby, что дало мне следующее:

    Fetching: json-1.8.0.gem (100%)
    Temporarily enhancing PATH to include DevKit..
    Building native extensions. This could take a while...
    Successfully installed json-1.8.0
    Parsing documentation for json-1.8.0
    Unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.so, skipping
    Unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.so, skipping
    Installing ri documentation for json-1.8.0
    1 gem installed

Я сделал быстрый поиск здесь о невозможности конвертировать предупреждения и нашел это заставило меня почувствовать себя лучше, так как это не ошибка, а это означало, что я продолжил и набрал ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect", и он отобразил [42], что, как я предположил, означает, что оно работает правильно!

Итак, теперь с драгоценным камнем Big Cartels Dugway я набираю gem install dugway, что дало мне ошибку:

    ERROR: While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: dugway requires i18n (= 0.6.1)

Быстрый поиск показал мне, что i18n сам по себе является драгоценным камнем, поэтому ... предположения о том, что я только что узнал о том, как устанавливать драгоценные камни, заставили меня подумать, что gem install i18n следует записать в командную строку, к счастью, это не установило никаких предупреждений или ошибок. Итак, я попытался снова установить dugway gem install dugway и получил ту же ошибку, что и раньше, что dugway требует i18n.

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

Как мне обойти эту последнюю ошибку, для меня она установлена, так что я делаю неправильно? Извините, если это очевидно, но, как я уже сказал, все это для меня довольно ново, я привык просто писать PHP и запускать базы данных, поэтому я все еще настраиваюсь!

ИЗМЕНИТЬ

Обратите внимание: я также пытался добавить --platform-ruby в конце gem install dugway на всякий случай, если это было проблемой, но все равно получал ту же ошибку.

ИЗМЕНИТЬ

Следуя совету Саймона Реппа о принудительной установке конкретной версии i18n:

ruby 2.0.0p247 (2013-06-27) [x64-mingw32]

C:\Users\Me>cd C:\Ruby200-x64\devkit

C:\Ruby200-x64\devkit>gem list i18n

*** LOCAL GEMS ***

i18n (0.6.4)

C:\Ruby200-x64\devkit>gem install i18n --version '= 0.6.1'
Fetching: i18n-0.6.1.gem (100%)
Successfully installed i18n-0.6.1
Parsing documentation for i18n-0.6.1
Installing ri documentation for i18n-0.6.1
1 gem installed

Затем снова попытался установить dugway, все шло хорошо до конца:

C:\Ruby200-x64\devkit>gem install dugway
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Fetching: rack-1.4.5.gem (100%)
Successfully installed rack-1.4.5
Fetching: rack-mount-0.8.3.gem (100%)
Successfully installed rack-mount-0.8.3
Fetching: activesupport-3.2.14.gem (100%)
Successfully installed activesupport-3.2.14
Fetching: liquid-2.4.1.gem (100%)
Successfully installed liquid-2.4.1
Fetching: coffee-script-source-1.6.3.gem (100%)
Successfully installed coffee-script-source-1.6.3
Fetching: execjs-1.4.0.gem (100%)
Successfully installed execjs-1.4.0
Fetching: coffee-script-2.2.0.gem (100%)
Successfully installed coffee-script-2.2.0
Fetching: sass-3.2.9.gem (100%)
Successfully installed sass-3.2.9
Fetching: hike-1.2.3.gem (100%)
Successfully installed hike-1.2.3
Fetching: tilt-1.4.1.gem (100%)
Successfully installed tilt-1.4.1
Fetching: sprockets-2.10.0.gem (100%)
Successfully installed sprockets-2.10.0
Fetching: sprockets-sass-0.9.1.gem (100%)
Successfully installed sprockets-sass-0.9.1
Fetching: chunky_png-1.2.8.gem (100%)
Successfully installed chunky_png-1.2.8
Fetching: fssm-0.2.10.gem (100%)
Successfully installed fssm-0.2.10
Fetching: compass-0.12.2.gem (100%)
Successfully installed compass-0.12.2
Fetching: multi_xml-0.5.4.gem (100%)
Successfully installed multi_xml-0.5.4
Fetching: httparty-0.10.2.gem (100%)
When you HTTParty, you must party hard!
Successfully installed httparty-0.10.2
Fetching: erubis-2.7.0.gem (100%)
Successfully installed erubis-2.7.0
Fetching: coderay-1.0.9.gem (100%)
Successfully installed coderay-1.0.9
Fetching: better_errors-0.6.0.gem (100%)
Successfully installed better_errors-0.6.0
Fetching: debug_inspector-0.0.2.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed debug_inspector-0.0.2
Fetching: binding_of_caller-0.7.2.gem (100%)
Building native extensions.  This could take a while...
Successfully installed binding_of_caller-0.7.2
Fetching: will_paginate-3.0.4.gem (100%)
Successfully installed will_paginate-3.0.4
Fetching: htmlentities-4.3.1.gem (100%)
Successfully installed htmlentities-4.3.1
Fetching: thor-0.17.0.gem (100%)
Successfully installed thor-0.17.0
Fetching: rubyzip-0.9.9.gem (100%)
Successfully installed rubyzip-0.9.9
Fetching: uglifier-1.3.0.gem (100%)
Successfully installed uglifier-1.3.0
Fetching: eventmachine-1.0.3.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing dugway:
        ERROR: Failed to build gem native extension.

C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for main() in -lssl... no
checking for rb_trap_immediate in ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... yes
checking for inotify_init() in sys/inotify.h... no
checking for __NR_inotify_init in sys/syscall.h... no
checking for writev() in sys/uio.h... no
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for windows.h... yes
checking for winsock.h... yes
checking for main() in -lkernel32... yes
checking for main() in -lrpcrt4... yes
checking for main() in -lgdi32... yes
creating Makefile

make "DESTDIR="
generating rubyeventmachine-x64-mingw32.def
compiling binder.cpp
In file included from c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-ming
w32/4.7.2/../../../../x86_64-w64-mingw32/include/process.h:12:0,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/win32.h:60,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/defines.h:153,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/ruby.h:70,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby.h:33,
                 from em.h:24,
                 from project.h:150,
                 from binder.cpp:20:
c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../
x86_64-w64-mingw32/include/sys/types.h:68:16: error: conflicting declaration 'ty
pedef _pid_t pid_t'
In file included from binder.cpp:20:0:
project.h:97:13: error: 'pid_t' has a previous declaration as 'typedef int pid_t
'
In file included from project.h:151:0,
                 from binder.cpp:20:
ed.h: In member function 'void EventableDescriptor::SetSocketInvalid()':
ed.h:43:40: warning: overflow in implicit constant conversion [-Woverflow]
make: *** [binder.o] Error 1


Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/event
machine-1.0.3 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/ext
/gem_make.out

C:\Ruby200-x64\devkit>

person no.    schedule 26.07.2013    source источник


Ответы (2)


Мне удалось заставить его работать, удалив 64-битные версии Ruby и DevKit.

На случай, если кто-то еще захочет узнать, как у меня это получилось, я полностью удалил Ruby и DevKit и загрузил Ruby 2.0.0-p247 и DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe.

Ruby устанавливается в C:\Ruby200\, а DevKit я извлек в C:\Ruby200\devkit\.

Открыл командную строку Ruby и сделал следующее:

Измените путь, инициализируйте и затем установите. Протестировал, как написано в RubyInstall DevKit, установив json (снова пара предупреждений о преобразованиях ASCII в UTF-8, но без ошибок).

Протестировал установку json, а затем установил версию i18n 0.6.1, поскольку это то, что, по словам Дагвея, требуется. Пытался установить Dugway, но он говорит, что activesupport requires i18n (>= 0.6.4, ~> 0., поэтому я установил 0.6.4 i18n, чтобы посмотреть, установится ли тогда Dugway.

Снова установил Dugway, после долгого ожидания синтаксического анализа и установки еще пары преобразований ASCII в UTF-8, но Dugway наконец-то был установлен!

Вот список команд, которые я использовал, все результаты удалены для удобства чтения:

C:\Users\Me> cd C:\Ruby200\devkit
C:\Ruby200\devkit> ruby dk.rb init
C:\Ruby200\devkit> ruby dk.rb install
C:\Ruby200\devkit> gem install json --platform=ruby
C:\Ruby200\devkit> ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect
C:\Ruby200\devkit> gem install i18n --version '= 0.6.1'
C:\Ruby200\devkit> gem install i18n
C:\Ruby200\devkit> gem install dugway

Надеюсь, это поможет людям, у которых есть такие же проблемы, как и у меня, поскольку я мало знаю о Ruby или Gems, как я уже сказал, я не знаю, что-то не так с любой из них с 64-битными версиями или это на дагвеях. конец, но в любом случае, это сработало для меня!

С самим дагвеем все еще есть проблемы, но, по крайней мере, он установлен, я буду связываться с самими дагвеями по проблемам, с которыми я сталкиваюсь сейчас.

person no.    schedule 26.07.2013
comment
хорошо, если вы сообщите об этих проблемах при работе с ruby ​​​​на wnidows. Тем не менее, я считаю важным отметить, что большая часть сообщества ruby ​​​​предпочитает работать на системах * nix (обычно Linux или MacOS), и что вам, как новичку, будет легче работать с ruby ​​на одной из таких систем. - person Pedro Rolo; 07.03.2014

С помощью gem list i18n вы можете получить информацию о версии установленного вами драгоценного камня i18n.
(Должно быть в круглых скобках, например, i18n (x.x.x))

Скорее всего, версия, которую вы установили, не 0.6.1 (которая, согласно вашему сообщению об ошибке, является точной версией i18n, которая требуется для работы Dugway)

Если это так, вы можете попробовать gem install i18n --version '= 0.6.1' установить эту конкретную версию самостоятельно.

К сожалению, есть большая вероятность, что это не удастся, потому что, если бы гем можно было установить для вас просто так, rubygems, вероятно, уже сделали бы это за вас. Однако - какую бы ошибку вы ни получили, пытаясь это сделать, она приведет вас к более глубокой причине проблемы и, таким образом, по крайней мере, на один шаг вперед на вашем пути;)

person Simon Repp    schedule 26.07.2013
comment
Что ж, получилось дальше, чем в прошлый раз, так что большое спасибо за установку версии! Я пытаюсь понять ошибку, которую он выдает, но мне не повезло! Отредактировал мой исходный вопрос с результатами. - person no.; 26.07.2013