Windows Не удалось собрать собственное расширение gem при установке Squib - PullRequest
1 голос
/ 19 февраля 2020

Я ничего не знаю о Ruby и пытаюсь установить gem squib на Windows 10 с небольшим успехом.

При первой попытке я установил Ruby 2.6.5-1, используя RubyInstaller.exe. Я не помню код ошибки, но Squib не установил. (Я полагаю, это было «make fail, код выхода 1»)

Затем я обнаружил, что не установил MSYS2. Итак, я удалил Ruby и переустановил, убедившись, что установил MSYS2. Squib снова отказался от правильной установки.

Поэтому я перешел на страницы справки и нашел поддержку в теме под названием "Windows install проблема? ". Я был уверен, что это была моя спасительная льгота.

Это не так.

Я также попробовал исправления, перечисленные в " проблема с загрузкой ", хотя операционная система OP сделала это. не соответствует моему. Это не сработало.

Я тоже пытался установить squib с bundler, но это не сработало. Я не был удивлен.

Я где-то читал что-то случайное, говоря, что могут быть конфликты с самой новой версией Ruby. (2.6.5-1 в то время) Поэтому я использовал некоторое понижение Ruby magi c, чтобы добраться до Ruby 2.5.7 - ??. Затем что-то сбило с толку. Сквиб не удалось установить. (Сообщение было старым, а squib долго обновлялся go)

ОБНОВЛЕНИЕ: Я снова удалил и переустановил Ruby. На этот раз я использовал дополнительное обновление MSYS2 после установки MSYS2 в rubyinstaller.exe. Все еще не повезло. Я полагаю, что это имеет отношение к "glib2", что бы это ни было.

Я ищу совет о том, что делать дальше, так как я уверен, что что-то упустил.

Спасибо, Эдгар

(Это регургитация с моей последней попытки.)

ruby 2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]

C:\Users\Edgar>gem install squib
Fetching native-package-installer-1.0.9.gem
Fetching gio2-3.4.1.gem
Fetching highline-2.0.2.gem
Fetching gobject-introspection-3.4.1.gem
Fetching pkg-config-1.4.1.gem
Fetching cairo-1.16.5.gem
Fetching glib2-3.4.1.gem
Fetching classy_hash-0.2.1.gem
Fetching mercenary-0.3.6.gem
Fetching mini_portile2-2.4.0.gem
Fetching nokogiri-1.10.4-x64-mingw32.gem
Fetching cairo-gobject-3.4.1.gem
Fetching pango-3.4.1.gem
Fetching rubyzip-1.3.0.gem
Fetching roo-2.8.2.gem
Fetching gdk_pixbuf2-3.4.1.gem
Fetching rsvg2-3.4.1.gem
Fetching ruby-progressbar-1.10.1.gem
Fetching squib-0.15.3.gem
Installing required msys2 packages: mingw-w64-x86_64-pkg-config
warning: mingw-w64-x86_64-pkg-config-0.29.2-1 is up to date -- skipping
Successfully installed pkg-config-1.4.1
Successfully installed native-package-installer-1.0.9
Temporarily enhancing PATH for MSYS/MINGW...
Installing required msys2 packages: mingw-w64-x86_64-cairo
warning: dependency cycle detected:
warning: mingw-w64-x86_64-harfbuzz will be installed before its mingw-w64-x86_64-freetype dependency
Building native extensions. This could take a while...
Successfully installed cairo-1.16.5
Successfully installed classy_hash-0.2.1
Installing required msys2 packages: mingw-w64-x86_64-glib2
warning: mingw-w64-x86_64-glib2-2.62.4-1 is up to date -- skipping
Building native extensions. This could take a while...
ERROR:  Error installing squib:
        ERROR: Failed to build gem native extension.

    current directory: D:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/glib2-3.4.1/ext/glib2
D:/Ruby26-x64/bin/ruby.exe -I D:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20200223-9340-259ydx.rb extconf.rb
checking for --enable-debug-build option... no
checking for -Wall option to compiler... yes
checking for -Waggregate-return option to compiler... yes
checking for -Wcast-align option to compiler... yes
checking for -Wextra option to compiler... no
checking for -Wformat=2 option to compiler... yes
checking for -Winit-self option to compiler... yes
checking for -Wlarger-than-65500 option to compiler... yes
checking for -Wmissing-declarations option to compiler... yes
checking for -Wmissing-format-attribute option to compiler... yes
checking for -Wmissing-include-dirs option to compiler... yes
checking for -Wmissing-noreturn option to compiler... yes
checking for -Wmissing-prototypes option to compiler... yes
checking for -Wnested-externs option to compiler... no
checking for -Wold-style-definition option to compiler... yes
checking for -Wpacked option to compiler... yes
checking for -Wp,-D_FORTIFY_SOURCE=2 option to compiler... yes
checking for -Wpointer-arith option to compiler... yes
checking for -Wundef option to compiler... yes
checking for -Wout-of-line-declaration option to compiler... no
checking for -Wunsafe-loop-optimizations option to compiler... yes
checking for -Wwrite-strings option to compiler... yes
checking for Homebrew... no
checking for gobject-2.0 version (>= 2.12.0)... yes
checking for gthread-2.0... yes
checking for unistd.h... no
checking for io.h... no
checking for g_spawn_close_pid() in glib.h... no
checking for g_thread_init() in glib.h... no
checking for g_main_depth() in glib.h... no
checking for g_listenv() in glib.h... no
checking for rb_check_array_type() in ruby.h... no
checking for rb_check_hash_type() in ruby.h... no
checking for rb_exec_recursive() in ruby.h... no
checking for rb_errinfo() in ruby.h... no
checking for rb_thread_call_without_gvl() in ruby.h... no
checking for ruby_native_thread_p() in ruby.h... no
checking for rb_thread_call_with_gvl() in ruby.h... no
checking for rb_gc_register_mark_object() in ruby.h... no
checking for rb_exc_new_str() in ruby.h... no
checking for rb_enc_str_new_static() in ruby.h... no
checking for curr_thread in ruby.h,node.h... no
checking for rb_curr_thread in ruby.h,node.h... no
creating ruby-glib2.pc
creating glib-enum-types.c
creating glib-enum-types.h
creating Makefile

current directory: D:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/glib2-3.4.1/ext/glib2
make "DESTDIR=" clean

current directory: D:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/glib2-3.4.1/ext/glib2
make "DESTDIR="
compiling glib-enum-types.c
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `x86_64-w64-mingw32-gcc -I. -ID:/Ruby26-x64/include/ruby-2.6.0/x64-mingw32 -I/D/Ruby26-x64/include/ruby-2.6.0/ruby/backward -I/D/Ruby26-x64/include/ruby-2.6.0 -I. -IC:/Program Files (x86)/GtkSharp/2.12//INCLUDE  -I./.gem.20200223-9340-l8g9x  -I/D/Ruby26-x64/lib/ruby/vendor_ruby/2.6.0/x64-msvcrt  -ID:/Ruby26-x64/msys64/mingw64/include -ID:/Ruby26-x64/msys64/mingw64/lib/libffi-3.2.1/include -ID:/Ruby26-x64/msys64/mingw64/include/glib-2.0 -ID:/Ruby26-x64/msys64/mingw64/lib/glib-2.0/include -ID:/Ruby26-x64/msys64/mingw64/include -ID:/Ruby26-x64/msys64/mingw64/include/glib-2.0 -ID:/Ruby26-x64/msys64/mingw64/lib/glib-2.0/include -DRUBY_GLIB2_COMPILATION -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-fast-math -Wall -Waggregate-return -Wcast-align -Wformat=2 -Winit-self -Wlarger-than-65500 -Wmissing-declarations -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wmissing-prototypes -Wold-style-definition -Wpacked -Wp,-D_FORTIFY_SOURCE=2 -Wpointer-arith -Wundef -Wunsafe-loop-optimizations -Wwrite-strings -mms-bitfields -pthread -mms-bitfields  -o glib-enum-types.o -c glib-enum-types.c'
make: *** [Makefile:244: glib-enum-types.o] Error 1

make failed, exit code 2

Gem files will remain installed in D:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/glib2-3.4.1 for inspection.
Results logged to D:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/glib2-3.4.1/gem_make.out

C:\Users\Edgar>

1 Ответ

0 голосов
/ 01 апреля 2020

Похоже, версия glib2, к которой призывает squib, неправильно устанавливается в моей системе Windows 10. После нескольких попыток я обнаружил обходной путь, на котором можно установить сквиб Требуется, чтобы у вас была «подсистема для Linux», не такая плохая, как кажется, следуйте за мной:

1. Отправляйтесь на этот сайт

2. Прокрутите вниз до раздела «Использование подсистемы Windows для Linux».

3. Следуйте всем инструкциям после «Использование Windows Подсистема для Linux "и до" Бонусные баллы! ".

4. После установки ruby. Введите код ниже в свой терминал:

sudo apt-get install -y build-essential

5. Как только это будет завершено. Введите приведенный ниже код в свой терминал:

sudo gem install squib

6. Вы пройдете большую часть установки, а затем получите «ОШИБКА: Сбой» построить собственное расширение ". Это относится к gdk_pixbuf2. Введите код ниже в свой терминал:

sudo gem update rake

7. Наконец, введите код ниже в свой терминал :

sudo gem install squib

8. Вы закончили и готовы использовать squib!

Необходимость обновления этого файла rake заставляет меня думать, что я должен был обновить файл make в моем windows установка ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...